タグ付けされた質問 「uniq」

5
「sort -u」と「sort |」の違いは何ですか ユニック」?
並べ替えられた一意のリストを取得する必要がある人がいるところはどこでも、常にパイプされsort | uniqます。誰かがsort -u代わりに使用する例を見たことはありません。何故なの?違いは何ですか?また、一意のフラグよりもuniqを使用してソートする方が良いのはなぜですか?
120 bash  sort  uniq 

7
.bash_historyの重複を削除するにはどうすればよいですか?
私はcontrol+rコマンド履歴を再帰的に検索するために使用することを本当に楽しんでいます。私はそれで使用したいいくつかの良いオプションを見つけました: # ignore duplicate commands, ignore commands starting with a space export HISTCONTROL=erasedups:ignorespace # keep the last 5000 entries export HISTSIZE=5000 # append to the history instead of overwriting (good for multiple connections) shopt -s histappend 私にとって唯一の問題は、erasedups連続した重複のみを消去することです-そのため、この一連のコマンドでは: ls cd ~ ls lsコマンドは、実際には2回記録されます。私は定期的にw / cronを実行することを考えました: cat .bash_history | sort | uniq …

4
データを並べ替えずに一意の結果のみを取得する方法は?
$ cat data.txt aaaaaa aaaaaa cccccc aaaaaa aaaaaa bbbbbb $ cat data.txt | uniq aaaaaa cccccc aaaaaa bbbbbb $ cat data.txt | sort | uniq aaaaaa bbbbbb cccccc $ 必要な結果は、元のファイルのすべての行を表示して、ファイル内のステートメントの元の順序を維持しながら、(連続したものだけでなく)すべての重複を削除することです。 ここで、この例では、実際に探していた結果は aaaaaa cccccc bbbbbb uniq一般的にこの一般化された操作を実行するにはどうすればよいですか?

2
awk '!a [$ 0] ++'はどのように機能しますか?
このワンライナーは、事前ソートなしでテキスト入力から重複行を削除します。 例えば: $ cat >f q w e w r $ awk '!a[$0]++' <f q w e r $ インターネットで見つけた元のコードは次のとおりです。 awk '!_[$0]++' _Perlのようにawkで特別な意味を持つようになったので、これはさらに困惑しましたが、それは単なる配列の名前であることが判明しました。 これで、ワンライナーの背後にあるロジックがわかりました。 各入力行はハッシュ配列のキーとして使用されるため、完了すると、ハッシュには到着順に一意の行が含まれます。 私が学びたいのは、この表記がawkによってどのように解釈されるかです。たとえば、バング記号(!)の意味とこのコードスニペットの他の要素。 どのように機能しますか?

4
uniq --uniqueが存在するほどuniqが一意でないのはどうしてですか?
pastebinからのランダムファイルのコマンドは次のとおりです。 wget -qO - http://pastebin.com/0cSPs9LR | wc -l 350 wget -qO - http://pastebin.com/0cSPs9LR | sort -u | wc -l 287 wget -qO - http://pastebin.com/0cSPs9LR | sort | uniq | wc -l 287 wget -qO - http://pastebin.com/0cSPs9LR | sort | uniq -u | wc -l 258 -uフラグが何をしているのかについてのマニュアルページは明確ではありません。何かアドバイス?
35 uniq 


12
重複行をペアで削除しますか?
今日、このユースケースに出会いました。これは、一見シンプルなようだが、と周りいじるsort、uniq、sedそしてawkそれは自明だことを明らかにしました。 重複行のすべてのペアを削除するにはどうすればよいですか?つまり、指定された行の重複が偶数個ある場合は、それらをすべて削除します。重複する行の数が奇数の場合、1つを除くすべてを削除します。(ソートされた入力を想定できます。) クリーンでエレガントなソリューションが望ましいです。 入力例: a a a b b c c c c d d d d d e 出力例: a d e

1
大きなマルチGBテキストファイルで重複行を削除する方法は?
私の質問はこの質問に似ていますが、いくつかの異なる制約があります。 私は大きな\n区切りのワードリストを持っています-1行に1ワード。ファイルのサイズは、2GBから最大10GBの範囲です。 重複する行を削除する必要があります。 プロセスは、重複を削除する過程でリストを並べ替えることができますが、必須ではありません。 出力される新しい一意のワードリストを保持するのに十分なスペースがパーティションにあります。 これらの方法の両方を試しましたが、どちらもメモリ不足エラーで失敗します。 sort -u wordlist.lst > wordlist_unique.lst awk '!seen[$0]++' wordlist.lst > wordlist_unique.lst awk: (FILENAME=wordlist.lst FNR=43601815) fatal: assoc_lookup: bucket-ahname_str: can't allocate 10 bytes of memory (Cannot allocate memory) 他にどのようなアプローチを試すことができますか?

2
「uniq -t」は何をしましたか?
コマンドの-tオプションを使用する2003年の古いコードがいくつかありますuniq。そのオプションはおそらくもうサポートされていないため、エラーがスローされます。 コマンドを使用する部分は次のとおりです。 egrep -n "{ IA32_OP" ia32-decode.c | \ awk '{ print $1 $3 $4 }' | \ sort -t '(' +1 | \ uniq -t ':' -f 1 | \ sed 's/\(.*\)\:IA32_OP(\(.*\)),/#define IA32_OP_\2 \1/g' >> ia32_opcodes.h そのオプションは当時何をしましたか?そのコマンドを何に置き換えることができますか?
15 uniq 

4
一致するフィールドに基づいて列のペアを合計する
次の形式の大きなファイルがあります。 2 1019 0 12 2 1019 3 0 2 1021 0 2 2 1021 2 0 2 1022 4 5 2 1030 0 1 2 1030 5 0 2 1031 4 4 列2の値が一致する場合、両方の行の列3と4の値を合計します。それ以外の場合は、一意の行の値の合計のみです。 したがって、私が期待している出力は次のようになります。 2 1019 15 2 1021 4 2 1022 9 2 1030 6 2 1031 8 …

5
順序を維持しながら隣接する重複行を削除する
それぞれが何回も繰り返される名前が1列のファイルがあります。同じ名前の他の繰り返しに隣接していない同じ名前の他の繰り返しを維持しながら、各繰り返しを1つに圧縮したい。 例えば、私は左側を右側に向けたいです: Golgb1 Golgb1 Golgb1 Akna Golgb1 Spata20 Golgb1 Golgb1 Golgb1 Akna Akna Akna Akna Spata20 Spata20 Spata20 Golgb1 Golgb1 Golgb1 Akna Akna Akna これは私が使用してきたものです。perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt ただし、この方法では左から1つの代表のみが保持されます(つまり、Golb1とAknaは繰り返されません)。 複数の隣接しないブロックで繰り返される名前を維持しながら、各ブロックの一意の名前を維持する方法はありますか?
11 awk  sed  sort  uniq 

2
「uniq」または「sort -u」行がどこにあるのか、いくつかのユニコード文字がある
次のコードスニペットで何が起こっていますか?期待どおりの出力が得られません。 バグだと思いますが、2つの異なるプログラム(uniqとsort)で発生するので、何か関係があるのではないかと思います。 最初の3つ(4つのうち)の例は機能しますが、4番目の例は失敗します。 すべてのキャラクターで同じ動作が期待されます。 すなわち。(入力の3行から)2行を出力するには... 4番目のケースでは、1行しか表示されません(sort -uおよびの両方uniq)。2つの同一のリンが消えるだけです! 表示をコンパクトにするために、出力「\ n」をスペースに変換しました。 私が使用していますUNIQをしてソート(GNUのcoreutilsの)7.4から... Ubuntuの10.04.3 LTSデスクトップ上で実行されています。 スクリプト: { locale -k LC_COLLATE echo for c1 in x 〼 ;do for c2 in z 〇 ;do echo -n "asis : "; echo -e "$c1\n$c2\n$c2" |tr '\n' ' ';echo echo -n "uniq : "; echo -e "$c1\n$c2\n$c2" …

5
効率的にマージ/ソート/ユニークな多数のテキストファイル
私は素朴なことを試しています: $ cat * | sort -u > /tmp/bla.txt これは失敗します: -bash: /bin/cat: Argument list too long したがって、(巨大な一時ファイルを作成する)のようなばかげた解決策を避けるために: $ find . -type f -exec cat {} >> /tmp/unsorted.txt \; $ cat /tmp/unsorted.txt | sort -u > /tmp/bla.txt 私は使用してファイルを1つずつ処理することができましたが(これにより、メモリ消費が削減され、ストリーミングメカニズムに近づくはずです)。 $ cat proc.sh #!/bin/sh old=/tmp/old.txt tmp=/tmp/tmp.txt cat $old "$1" | sort -u > …
8 shell  sort  uniq 


3
Linuxで最速の `uniq`ツール
大きなテキストファイル(1.5 G)があります。 Linuxで最も高速で信頼性の高いツールを教えてください。 私は通常使用します: awk '!x[$0]++' file.txt しかし、htopコマンドを使用すると、メモリ使用量が増加していることがわかります。 巨大なファイルで最も速くて信頼性の高いものを知りたい。 uniq? sort? sed? awk? どうして?
8 sed  awk  memory  sort  uniq 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.