一意の行を見つけて、ファイルからすべての重複を削除するにはどうすればよいですか?私の入力ファイルは
1
1
2
3
5
5
7
7
結果を次のようにしたいと思います。
2
3
sort file | uniq仕事をしません。すべての値が1回表示されます
一意の行を見つけて、ファイルからすべての重複を削除するにはどうすればよいですか?私の入力ファイルは
1
1
2
3
5
5
7
7
結果を次のようにしたいと思います。
2
3
sort file | uniq仕事をしません。すべての値が1回表示されます
sort file | uniqすべての値を1回表示する理由は、最初に遭遇した行をすぐに印刷し、その後の遭遇ではそれらをスキップするためだと思います。
                回答:
uniq 必要なオプションがあります:
   -u, --unique
          only print unique lines
$ cat file.txt
1
1
2
3
5
5
7
7
$ uniq -u file.txt
2
3
次のように使用します。
sort < filea | uniq > fileb
uniq -u filea > fileb
                    sort<filea.txt | uniq>fileb.txt。多分あなたは拡張機能を省略しました。私はMacOS Xを使用しています。filea.txt他の場所に移動する必要がありますfileb.txt
                    sortようuniqになるまでのパイプのポイントはsort -u file -o file、重複する値を削除することです。つまり、OPがfileb含まれ1,2,3,5,7ている場合、ファイル拡張子2,3によって達成される一意の行のみが必要です。uniq -u fileそれに、あなたの答えは間違っています。
                    また、使用して、「ファイル」に一意の値をプリントアウトできcatに配管のコマンドをsortし、uniq
cat file | sort | uniq -u
uniq -uは、機能しなかったため、私を夢中にさせてきました。
したがって、その代わりに、Pythonを使用している場合(ほとんどのLinuxディストリビューションとサーバーにはすでにPythonがあります):
#Python
#Assuming file has data on different lines
#Otherwise fix split() accordingly.
uniqueData = []
fileData = open('notUnique.txt').read().split('\n')
for i in fileData:
  if i.strip()!='':
    uniqueData.append(i)
print uniqueData
###Another option (less keystrokes):
set(open('notUnique.txt').read().split('\n'))
参考までに、uniqのマニュアルページから:
「注:「uniq」は、隣接していない限り、繰り返される行を検出しません。最初に入力を並べ替えるか、「uniq」なしで「sort -u」を使用することをお勧めします。また、比較は「LC_COLLATE」で指定されたルールを尊重します。」
で呼び出す正しい方法の1つ:#sort nonUnique.txt | uniq
$ cat x
3
1
2
2
2
3
1
3
$ uniq x
3
1
2
3
1
3
$ uniq -u x
3
1
3
1
3
$ sort x | uniq
1
2
3
uniqファイルがソート可能である場合、または何らかの理由でファイルをソートできない場合は、次を使用できますawk。
awk '{a[$0]++}END{for(i in a)if(a[i]<2)print i}'
sort -d "file name" | uniq -u
これは私にとっても同様の問題でした。配置されていない場合に使用します。並べ替えがあれば削除できます
これは私が試した最初のものでした
skilla:~# uniq -u all.sorted  
76679787
76679787 
76794979
76794979 
76869286
76869286 
......
猫をやった後-eall.sorted
skilla:~# cat -e all.sorted 
$
76679787$
76679787 $
76701427$
76701427$
76794979$
76794979 $
76869286$
76869286 $
1行おきに末尾のスペースがあります:(すべての末尾のスペースを削除した後、機能しました!
ありがとうございました
sort file | uniq -uコンソールに出力されます。