awk可以读取以空分隔的文本吗?

时间:2020-04-18 01:19:39

标签: awk

awk是否支持空分隔的输入,例如sortreadgrep等其他命令?

我正在尝试:

printf 'one\0two' | awk -F '\0' '{print $2}'

我希望它输出two,但我得到的是:

n

2 个答案:

答案 0 :(得分:3)

没有标准的POSIX工具支持该功能,因为它不是POSIX文本文件(请参见https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_403),但与GNU排序,GNU grep和GNU sed一样,GNU awk也支持它。由于没有终止\n,YMMV也提供了无效的POSIX文本“文件”输入。

$ printf 'one\0two\n' | gawk -F '\0' '{print $2}'
two

答案 1 :(得分:0)

替代方法是使用xargs

$ printf 'one\0two' | xargs -0 -n1 echo
one
two