我想使用wc -l
计算文件的行数,并使用awk将此数字写入文件(在特定列中)。
wc -l list | awk 'print $1'
给了我输出
68
我想将此68
写入另一个文件中的第3列。(count.txt)
如何通过awk
完成? (或者有更好的选择吗?)
答案 0 :(得分:0)
这个很有趣......策略是阅读ARGV[1]
然后在BEGIN
中将其删空,以便我们之后从stdin读取:
wc -l < list | awk '
BEGIN {
out = ARGV[1]
getline < out
line = $0
close(out)
ARGV[1] = ""
}
{
wc = $0
$0 = line
$3 = wc
print > out
}
' count.txt
我们可能在开头读取stdin,但之后我们必须将count.txt
缓存在正文中,然后在END
中打印。