就像标题所说的那样,我不知道变量'值 NULL 或 NUL 或“”或 \ 0 或为空。
任何人都可以解释一下吗?
感谢
答案 0 :(得分:0)
据我所知,awk中没有特殊的NULL
值,空值或未设置的变量之间也没有区别。如果尚未为变量分配值,则将根据上下文计算空字符串""
或0
。例如:
awk 'BEGIN{print "a" b "c"}'
此处b
是未设置的变量。在字符串上下文中,它的计算结果为""
,生成输出ac
。
awk 'BEGIN{print 1+a}'
a
尚未设置,但处于数字上下文中。在这种情况下,它的计算结果为0
,产生输出1
。
空字节\0
完全不同。您可以像任何其他转义序列一样打印一个,例如标签\t
或换行符\n
。看到一个人就更难了。为此,您可以使用cat -v
:
$ awk 'BEGIN{print "a\0c"}' | cat -v
a^@c
输出中的^@
表示存在空字节。
你也可以"看"使用xargs
的空字节:
$ awk 'BEGIN{print "a\0c"}' | xargs -0
a c
-0
的{{1}}选项告诉它参数将由空字节分隔。如您所见,有两个参数xargs
和a
。
答案 1 :(得分:0)
@Tom Fenech
谢谢,我有这样一个问题的原因是我在阅读awk的信息时对变量RS感到困惑。
正如信息所说:
空字符串`""' (没有任何字符的字符串)有一个特殊的 意思是“RS'”的值。这意味着记录是由分隔的 一个或多个空白行,没有别的。
BEGIN {RS =" \ 0"整个文件变成一条记录?
现在,我在阅读你的解释后知道了它!