我只想提取那些在输入文件中只出现一次的记录
输入文件1
CHEMBL184618
CHEMBL184618
CHEMBL198362
CHEMBL198362
CHEMBL218394
CHEMBL218394
CHEMBL221959
CHEMBL221959
CHEMBL24828
CHEMBL24827
预期产出
CHEMBL24828
CHEMBL24827
我已经完成了排序Filename.txt | uniq -d查找重复的ID并将它们保存在单独的文件中。然后我找到排序Filename.txt | uniq -c。第三步是从唯一ID中删除重复的ID。我想要一种有效的方法。
答案 0 :(得分:5)
尝试:
listview
来自uniq -u input_file
手册:
-u, - 唯一
仅打印唯一的行
答案 1 :(得分:2)
假设您有一个文件testFile.txt,其中包含以下内容:
CHEMBL184618
CHEMBL184618
CHEMBL198362
CHEMBL198362
CHEMBL218394
CHEMBL218394
CHEMBL221959
CHEMBL221959
CHEMBL24828
CHEMBL24827
uniq将输出所有行一次:
cat testFile.txt | uniq
CHEMBL184618
CHEMBL198362
CHEMBL218394
CHEMBL221959
CHEMBL24828
CHEMBL24827
uniq -d将输出出现多次的所有行:
cat testFile.txt | uniq -d
CHEMBL184618
CHEMBL198362
CHEMBL218394
CHEMBL221959
uniq -u将输出恰好出现一次的所有行:
cat testFile.txt | uniq -u
CHEMBL24828
CHEMBL24827
答案 2 :(得分:1)
在awk中还有一个:
awk '{a[$0] += 1}END{ for ( i in a ) if (a[i] == 1) print i }' file
输出:
CHEMBL24828
CHEMBL24827
我认为删除前导空格不是问题。您可以使用以下内容执行此操作:
sed -i 's/^ *//g'
或者Inian发布的awk方法。