ブログ

ファイルの同じ文字列の行を削除して表示する

at_shiita.ishigaki
2022年3月17日 9時39分

ファイルの同じ文字列の行を削除して表示するにはuniqコマンドを使用します。
uniqコマンドを使用するには、入力をソートしておく必要があり、以下ではsortコマンドを使用しています。

[armadillo ~]# cat > test.txt << EOF
hoge
Hoge
hoge
fuga
hoge
fuga
piyo
EOF
ソートしてからuniqコマンドを使用します。
[armadillo ~]# sort test.txt | uniq
Hoge
fuga
hoge
piyo

同じ文字列の行が存在しない行を表示するには-uオプションを使用します。

[armadillo ~]# sort test.txt | uniq -u
Hoge
piyo

同じ文字列の行が存在する行のみ出力するには-dオプションを使用します。

[armadillo ~]# sort test.txt | uniq -d
fuga
hoge

同じ文字列の行がいくつあるか表示するには-cオプションを使用します。

[armadillo ~]# sort test.txt | uniq -c
      1 Hoge
      2 fuga
      3 hoge
      1 piyo