2

私たちが知っているように

uniq [options] [file1 [file2]]

ソートされたfile1から重複する隣接行を削除します。オプション-cは、各行を1回出力し、それぞれのインスタンスをカウントします。したがって、次の結果が得られた場合:

     34 Operating System
    254 Data Structure
      5 Crypo
     21 C++
   1435 C Language
    589 Java 1.6

そして、「sort -1knr」を使用して上記のデータを並べ替えると、結果は次のようになります。

   1435 C Language
    589 Java 1.6
    254 Data Structure
     34 Operating System
     21 C++
      5 Crypo

本の名前だけをこの順序(番号なし)で出力する方法を教えてもらえますか?

4

3 に答える 3

2
uniq -c filename | sort -k 1nr | awk '{$1='';print}'
于 2012-10-01T14:45:58.383 に答える
2

sed次のように、そのために使用することもできます。

uniq -c filename | sort -k -1nr | sed 's/[0-9]\+ \(.\+\)/\1/g'

テスト:

echo "34 Data Structure" | sed 's/[0-9]\+ \(.\+\)/\1/g'
Data Structure

これは、簡略化された正規表現を使用して実行することもできます(提供:William Pursell)。

echo "34 Data Structure" | sed 's/[0-9]* *//'
Data Structure
于 2012-10-01T15:23:58.497 に答える
0

なぜあなたuniq -cはオカレンスの数を印刷するために使用し、それをカット/オーク/セッドダンスで削除したいのですか?

代わりに、あなたはただ使うことができます

sort -u $file1 $file2 /path/to/more_files_to_glob*

sortまたは、一部のシステムには、をサポートしていないバージョンが付属してい-uますか?

于 2018-08-22T12:44:24.753 に答える