38

さまざまな場所に、すべて行があるドキュメントがたくさんありますAccount number: 123456789

私がする必要があるのは、ファイルを解析して、アカウント番号自体を見つけることです。そのため、直後の文字列awkを探して返す必要があります。Account number:

たとえば、次の場合:

Account number: 1234567

awk返す必要があります:

1234567

最初のオカレンスが見つかったら、探すのをやめることができます。

しかし、私は困惑しています。を使用してこれを行う正しい方法は何awkですか?

4

5 に答える 5

51

一方通行:

awk -F: '$1=="Account number"{print $2;exit;}' file

ファイル内で最初の出現を見つけた瞬間に停止したいと思います。ファイルのすべての行で出現箇所を見つけたい場合は、exit.

于 2013-03-11T04:39:29.070 に答える
8

を使用して、「Account」と「number:」が等しいかどうかをif確認できます。そうであれば、次を印刷します。$1$2$3

> awk '{if ($1 == "Account" && $2 == "number:") {print $3; exit;}}' input.txt
于 2013-03-11T04:36:37.780 に答える
1

次を使用することもできますsed -n s///p

sed -En 's/^Account number: (.+)/\1/p' *.txt | head -n1
于 2013-03-11T07:28:16.643 に答える