我正在遍历文件并使用 awk 打印一组值
echo $value | awk ' {print $4}' >> 'some location'
该命令工作正常,但我想防止重复值存储在文件中
提前致谢。
我正在遍历文件并使用 awk 打印一组值
echo $value | awk ' {print $4}' >> 'some location'
该命令工作正常,但我想防止重复值存储在文件中
提前致谢。
您应该对整个文件使用单个 awk 命令,而不是逐行处理文件
例如:
awk '!a[$4]++{print $4}' file >> 'some location'
只会保留第四列的唯一值
仅使用 user000001 建议的一个实例awk
当然是正确的做法,并且由于问题中给出的细节很少,这纯粹是推测,但最简单的解决方案可能是对循环进行微不足道的重构。例如,如果当前代码是:
while ...; do
...
echo $value | awk ...
...
done
您可以简单地将其更改为:
while ...; do
...
echo $value >&5
...
done 5>&1 | awk '!a[$4]++{print $4}' >> /p/a/t/h
请注意,尽管在要更改的代码方面这是一个“简单”的修复,但几乎可以肯定它不是正确的修复!完全删除 while 循环并仅使用 awk 是正确的做法。