我试图了解一些我继承并使用awk的脚本。其中一个脚本是这些行:
report=`<make call to Java class that generates a report`
report=`echo $report|awk '{print $5}'`
第1行生成的报告包含以下数据:
ABC1234:0123456789:ABCDE
ABC4321:9876543210:EDCBA
...
awk生成的报告与原始报告相同。
报告中没有第5个字段,因为没有空格,并且尚未定义不同的字段分隔符。我知道使用$ 0将返回所有字段。指定不存在的字段是否也这样做?
答案 0 :(得分:0)
没有
echo "1 2 3"|awk '{print $5}'
上面没有打印。不知道为什么它表现得像你指定的那样。如果您使用"
而不是'
,那么它会打印,因为$ 5将由shell扩展,但是如果写的话不应该。
答案 1 :(得分:0)
你的测试出了问题。
在这种情况下,预期的awk行为是为每条输入行打印一个空白行,这就是我在使用1TA或gawk运行时看到的内容。