我有一个名为“ 1.txt ”的文件,其中包含以下内容:
111
111
222
777
1111
777
我正在尝试从中删除重复的字符串。 sort -u 1.txt
和sort 1.txt | uniq
都返回此:
111
1111
222
777
777
问题:
为什么字符串“ 777”仍然包含两次?如何删除重复项?
答案 0 :(得分:2)
“ 777”之一可能在结尾处带有隐藏字符。 尝试使用以下方法检查文件每一行的长度:
$ awk '{ print length($0); }' 1.txt
比较两条“ 777”行的长度,它们在您的文件中应该不同。
答案 1 :(得分:0)
尝试使用 sed 删除行末的非数字字符,然后使用 sort 和 uniq 删除重复的字符串。
sed 's/[^0-9]\{0,\}$//' 1.txt | sort | uniq
where s : to replace matched string
[^0-9] : to match non-digit char
\{0,\} : zero or more pattern match
$ : matches the end of lines