どーも!marusukeです!
テキストファイルなどの入力されたテキストストリーム内の重複している行を1行にまとめて出力するコマンドuniq
について説明します!
uniqコマンドでできること
uniq [オプション] 入力ファイル [出力ファイル]
uniq
コマンドは、連続する重複行を入力ファイルまたは標準入力から削除します
uniq
コマンドは、連続していない重複行は削除されないので、事前にsortコマンドで重複行を連続させておく必要があります
その他、重複した行の数をカウントする、重複行のみを表示する、非重複行のみを表示するなどのオプションがあります
uniqコマンドの使用例
以下のtestUniq.txt
の重複行をまとめて標準出力に表示してみます
bash-3.2$ cat testUniq.txt
apple
banana
orange
apple
banana
bash-3.2$ echo -e "apple\nbanana\napple\napple\nbanana" | sort | uniq apple banana
この例では、まず echo
コマンドで出力されたテキストを sort
コマンドでソートし、その後 uniq
コマンドで重複行を削除します。結果として、ソートされたユニークな行のみが出力されます
uniqコマンドのオプション
オプション | 説明 |
---|---|
-c | それぞれの行がファイル内に何回出現したかを表示します。 |
-d | 重複している行のみを表示します。 |
-u | 重複していない行のみを表示します。 |
-i | 大文字と小文字の違いを無視します。 |
-s N | 各行の最初のN文字を無視して比較します。 |
以上です!
ここまで読んでいただきありがとうございました!
コメント