我正在遍历文件并使用awk
打印一组值echo $value | awk ' {print $4}' >> 'some location'
该命令工作正常,但我想防止重复值存储在文件
中提前致谢。
答案 0 :(得分:3)
不是逐行处理文件,而是应该对整个文件使用单个awk命令
例如:
awk '!a[$4]++{print $4}' file >> 'some location'
仅保留第四列的唯一值
答案 1 :(得分:0)
只使用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是正确的做法。