我需要知道一种删除重复字符串的方法,但让我解释一下,因为我已经使用过uniq
。在文件中,我得到以下两行:
ANASI:A=4-63261950;
ANASI:A=4-63261950,ES=541;
字符串4-63261950
在两行中都是重复的,但是行本身是不同的,只有该字符串在两行中都相等。我只需要一种方法来处理整个文件并删除第一行,只留下ANASI:A=4-63261950,ES=541;
的那一行。该文件将包含几行与此完全相同的方案。有没有办法用sed
或其他东西做到这一点?
答案 0 :(得分:4)
拯救......
假设您的分隔符和结构保持不变
sort file | awk -F"[;,]" '!a[$1]++'
将根据词汇顺序选择第一个(,
< ;
)
答案 1 :(得分:0)
如果文件很大(内存有问题或问题)
sort YourFile | awk -F '[;,]' 'Last != $1{print}{Last = $1}'
答案 2 :(得分:0)
这可能适合你(GNU sed):
sed -r 'N;/^(.*);\n\1,/!P;D' file
这使用移动窗口来比较连续的线对以打印所需的匹配。