【发布时间】:2013-08-06 13:21:15
【问题描述】:
考虑以下文本文件 (test.txt):
1 1 1
7 7 6
和 awk 脚本 (test.awk)
{
print "$0 : ", $0
lines=(lines $0)
print "lines : ", lines
}
然后运行:
awk -f test.awk test.txt
给出输出
$0 : 1 1 1
lines : 1 1 1
$0 : 7 7 6
7 7 6 : 1 1 1
虽然预期的输出应该(据我所知)是:
$0 : 1 1 1
lines : 1 1 1
$0 : 7 7 6
lines : 1 1 17 7 6
我在这里错过了什么?
(我在 Ubuntu 12.04 上使用 GNU Awk 3.1.8)
【问题讨论】:
-
以上在 Arch Linux 上按预期工作。将 test.awk 文件中的
lines=(lines $0)行更改为lines=(lines $0 " ")以在行之间添加一个空格,否则工作时的最终结果是lines : 1 1 17 7 6 -
顺便说一句,我正在使用 awk 版本
4.1.0。 -
谢谢cmets..那么,既然它对你有用,我猜我的配置一定有问题?
-
不客气;我不知道,我猜...我认为我根本没有配置
awk。您可以尝试使用-F "\n"将分隔符指定为\n,但我认为最好的办法是检查更新,如果仍然没有帮助,请检查您的配置。 -
如果您有
awk的自定义配置,请将其添加到您的帖子中。
标签: awk concatenation