awk
是否支持空分隔的输入,例如sort
,read
,grep
等其他命令?
我正在尝试:
printf 'one\0two' | awk -F '\0' '{print $2}'
我希望它输出two
,但我得到的是:
n
答案 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