おりそ.doc

自分のしたことをアウトプットする場所

【備忘録】Linuxコマンドで文字列の並び替え+重複した文字列を排除する方法

1. やりたいこと

ファイル内の文字列を以下の条件に整形したい

  • 五十音順(漢字は例外可)
  • 重複する行は削除(排除)

2. ローカル環境

以下の環境で実施した。

3. 実践

以下コマンドを利用する

  • cat
  • sort
  • uniq

3-1. ファイル確認

「cat」コマンドを実行してファイル内容を確認

$ cat hashtag.txt
#タイッツー手芸部
#タイッツーお嬢様部
#タイッツー登山部
#タイッツー手芸部
#タイッツー虫部
#タイッツー猫部
#タイッツーダイエット部
#タイッツー卵割るの下手部
#タイッツー一次創作部
#タイッツー創作部
#タイッツーゲーム部
#タイッツー料理部
#タイッツー美術部
#タイッツー漫研
#タイッツー筋トレ部
#タイッツー飲酒部
#タイッツー短歌部
#タイッツー写真部
#タイッツー犬部
#タイッツークソゲー部
#タイッツー睡眠障害部
#タイッツー学校
#タイッツーダイエット部
#タイッツー筋トレ部
#タイッツー手芸部
#タイッツー美術部
#タイッツー料理部
#タイッツー飲酒部
#タイッツー軽音部
#タイッツーカラオケ部
#タイッツー学校
#タイッツーダイエット部
#タイッツ一筋トレ部
#タイッツー手芸部
#タイッツー美術部
#タイッツー料理部
#タイッツー飲酒部
#タイツ短歌部
#タイツ文芸部
#タイッツー写真部
#タイッツーお嬢様部
#タイッツー俳句部

なんかこんな感じ。

3-2. ソートする

さっそくソート(並び替え)を行う。 「sort」コマンドを実行しよう。

$ sort hashtag.txt
#タイッツーお嬢様部
#タイッツーお嬢様部
#タイッツーカラオケ部
#タイッツークソゲー部
#タイッツーゲーム部
#タイッツーダイエット部
#タイッツーダイエット部
#タイッツーダイエット部
#タイッツー一次創作部
#タイッツー俳句部
#タイッツー写真部
#タイッツー写真部
#タイッツー創作部
#タイッツー卵割るの下手部
#タイッツー学校
#タイッツー学校
#タイッツー手芸部
#タイッツー手芸部
#タイッツー手芸部
#タイッツー手芸部
#タイッツー料理部
#タイッツー料理部
#タイッツー料理部
#タイッツー漫研
#タイッツー犬部
#タイッツー猫部
#タイッツー登山部
#タイッツー睡眠障害部
#タイッツー短歌部
#タイッツー筋トレ部
#タイッツー筋トレ部
#タイッツー美術部
#タイッツー美術部
#タイッツー美術部
#タイッツー虫部
#タイッツー軽音部
#タイッツー飲酒部
#タイッツー飲酒部
#タイッツー飲酒部
#タイッツ一筋トレ部
#タイッツー文芸部
#タイッツー短歌部

さっきより見やすくなったし、重複も確認できるようになった。

しかし、これだけではファイルに保存できていない。

以下のコマンドを実行して、念のため別ファイル「hashtag1.txt」に保存しよう。

$ sort hashtag.txt > hashtag1.txt

hogehoge ~/git/taittsuu_wiki
$

今度はファイルの中身はプロンプトに出力されないため、プロンプトが返ってきたらOK。

念のため「hashtag1.txt」のファイルの中身がソートされているか確認。

#タイッツーお嬢様部
#タイッツーお嬢様部
#タイッツーカラオケ部
#タイッツークソゲー部
#タイッツーゲーム部
#タイッツーダイエット部
#タイッツーダイエット部
#タイッツーダイエット部
#タイッツー一次創作部
#タイッツー俳句部
#タイッツー写真部
#タイッツー写真部
#タイッツー創作部
#タイッツー卵割るの下手部
#タイッツー学校
#タイッツー学校
#タイッツー手芸部
#タイッツー手芸部
#タイッツー手芸部
#タイッツー手芸部
#タイッツー料理部
#タイッツー料理部
#タイッツー料理部
#タイッツー漫研
#タイッツー犬部
#タイッツー猫部
#タイッツー登山部
#タイッツー睡眠障害部
#タイッツー短歌部
#タイッツー筋トレ部
#タイッツー筋トレ部
#タイッツー美術部
#タイッツー美術部
#タイッツー美術部
#タイッツー虫部
#タイッツー軽音部
#タイッツー飲酒部
#タイッツー飲酒部
#タイッツー飲酒部
#タイッツ一筋トレ部
#タイッツー文芸部
#タイッツー短歌部

3-3. 重複行を排除する

先ほど作成した「hashtag1.txt」に対して「uniq」を実行する。

$ uniq hashtag1.txt
#タイッツーお嬢様部
#タイッツーカラオケ部
#タイッツークソゲー部
#タイッツーゲーム部
#タイッツーダイエット部
#タイッツー一次創作部
#タイッツー俳句部
#タイッツー写真部
#タイッツー創作部
#タイッツー卵割るの下手部
#タイッツー学校
#タイッツー手芸部
#タイッツー料理部
#タイッツー漫研
#タイッツー犬部
#タイッツー猫部
#タイッツー登山部
#タイッツー睡眠障害部
#タイッツー短歌部
#タイッツー筋トレ部
#タイッツー美術部
#タイッツー虫部
#タイッツー軽音部
#タイッツー飲酒部
#タイッツ一筋トレ部
#タイッツー文芸部
#タイッツー短歌部

すっきりしたね。

先ほど同様、これだけでは保存されていないので、別ファイル「hashtag2.txt」に保存する。

$ uniq hashtag1.txt > hashtag2.txt

hogehoge ~/git/taittsuu_wiki
$ 

プロンプトが返ってきたらOK。

最後に重複行がないことを確認。

$ cat hashtag2.txt
#タイッツーお嬢様部
#タイッツーカラオケ部
#タイッツークソゲー部
#タイッツーゲーム部
#タイッツーダイエット部
#タイッツー一次創作部
#タイッツー俳句部
#タイッツー写真部
#タイッツー創作部
#タイッツー卵割るの下手部
#タイッツー学校
#タイッツー手芸部
#タイッツー料理部
#タイッツー漫研
#タイッツー犬部
#タイッツー猫部
#タイッツー登山部
#タイッツー睡眠障害部
#タイッツー短歌部
#タイッツー筋トレ部
#タイッツー美術部
#タイッツー虫部
#タイッツー軽音部
#タイッツー飲酒部
#タイッツ一筋トレ部
#タイッツー文芸部
#タイッツー短歌部

これで、目標達成!

4. 参考サイト

atmarkit.itmedia.co.jp

uxmilk.jp