【发布时间】:2017-03-29 07:41:56
【问题描述】:
我阅读了another answer,它展示了如何使用-F 标志设置字段分隔符:
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+ 匹配“前两个数字用空格分隔,后跟一个空格”。但我正在打印第二张唱片。如图rubular:
- 如何使用正则表达式作为 awk 字段分隔符?
【问题讨论】:
-
我是 awk 我要打印 2 美元,第二条记录
-
awk 不支持 perlish
\d元字符。您将使用[[:digit:]]的POSIX 字符类而不是\d。 gnu.org/software/gawk/manual/html_node/…