私は1つが-F
フラグを使用してフィールドセパレータを設定する方法を示しているanother answerをお読みください。AWKのフィールド区切り記号に正規表現を使用するには?
awk -F 'INFORMATION DATA ' '{print $2}' t
は今、私はフィールドセパレータ用の正規表現を使用することができますどのように興味があります。私の試みは、以下に見られることができます。
$ echo "1 2 foo\n2 3 bar\n42 2 baz"
1 2 foo
2 3 bar
42 2 baz
$ echo "1 2 foo\n2 3 bar\n42 2 baz" | awk -F '\d+ \d+ ' '{ print $2 }'
# 3 blank lines
私は次のような出力を得るために期待していたが:
foo
bar
baz
これは私の正規表現\d+ \d+
マッチ「スペースで区切って最初の2つの数字は、続いているので、スペース"。しかし、私は2番目のレコードを印刷しています。 rubularに示すように:
- は、どのように私はawkのフィールドセパレータとして正規表現を使うのですか?
私はawkの私は$ 2、第2のレコード – mbigras
はダウがPerl的 '\ D 'メタ文字をサポートしていないawkのを印刷しています。 '\ d'の代わりに' [[:digit:]] 'のPOSIX文字クラスを使います。 https://www.gnu.org/software/gawk/manual/html_node/GNU-Regexp-Operators.html – dawg