在多个sed运行中获取重复的条目

时间:2019-05-02 22:31:08

标签: linux shell awk sed sh

我正在使用以下polyline命令来消除重复项

但是它仍然导致多次运行中重复输入

sed

sed -i '/^text1/i\value=value+1' file.txt | uniq 在这里无法消除重复的条目

1 个答案:

答案 0 :(得分:0)

首先,当您运行sed -i时,sed不会向stdout输出任何内容。这就是为什么用管道输送到uniq没用的原因。


第二,uniq需要对输入进行排序才能起作用:

sed ... file.txt | sort | uniq > file.txt.tmp
mv file.txt.tmp file.txt

您还可以使用-u的{​​{1}}标志:

sort

如果必须保留行顺序,则可以使用sed ... file.txt | sort -u > file.txt.tmp mv file.txt.tmp file.txt

awk

顺便说一句,GNU awk现在提供了一种修改文件的方法:

awk 'seen[$0]++{next} /^text1/{print "value=value+1";print}' file.txt > file.txt.tmp
mv file.txt.tmp file.txt