我有一个awk脚本,我需要将命令的输出写入文件。它应该是文件中的值,所以只有一个值。但它正在追加,给我1000个读数而不是1。我被难倒了。
for (i = 0; i < 1000; i++) {
getline < COMMAND
MIN2 = $1
close(COMMAND)
print MIN2 > "lastValue.txt"
}
字符串
要明确的是:该脚本,否则工作完美.我只需要它覆盖,不APPEND.和我的眼睛,这就是>
做.如果我有>>
我会期望它追加,所以我迷失了为什么>
是做什么>>
应该做.
1条答案
按热度按时间vybvopom1#
您正在考虑
>
在shell中的语义,awk不是shell,因此,除此之外,>
在awk中的含义与在shell中的含义不同。awk脚本如下:
字符串
与shell脚本的语义不同,例如:
a)
型
shell [re-]在每次循环迭代中打开输出文件,它与shell脚本相同,如下所示:
B)
型
其中shell只在循环开始时打开一次输出文件。
如果你想让awk脚本做上面shell脚本“a)”所做的事情,它应该是:
型
对于你的代码来说是:
型
但我想不出一个理由,为什么你想写一个文件1000次,然后丢弃前999行,而不是只写一次,当你完成:
型