uniqによる隣接重複行の削除


●隣り合う同じ内容の複数の行を1つにするコマンドuniqを紹介する。
 
  1. sortコマンドに続いて,uniqというコマンドを学習する。sortの学習で用意した env03list.txt
    というファイルを教材として使用する。

    (もし,env03list.txtを消去してしまっていたら,もう一度2003gaironディレクトリに移動して,
     env03list.tar.gz
    をクリックして2003gaironディレクトリの中にダウンロード・保存し,いつものとおり,
     % tar zxvf env03list.tar.gz
    として再度解凍しておくこと。)

    さて,uniqというコマンドはどのような処理を行うのだろうか。ためにしに,このuniq
    コマンドで,env03list.txtを処理したらどうなるか見てみよう。その前に,env03list.txt
    の内容を確認しておく。env03list.txtの内容は,下図のように,2009年の環境情報学科
    の学生のIDが11個ならんでいるというものである。同じIDがいくつか混じっている。
     ・e09038toは,1行目と2行目に登場する
     ・e09104htは,3行目と5行目に登場する
     ・e09080ysは,6行目,7行目,10行目に登場する
    ことを確認せよ。

    さて,次のようにコマンドを実行して,uniqコマンドでこの env03list.txt を処理してみよう。

     % uniq env03list.txt

    すると,結果は次の図の後半のようになる。


    この処理結果と元のenv03list.txtの内容を比較すると,隣り合った同じ内容の
    行が1行にまとめられている
    ことがわかる(下図)。env03list.txtで,2行目と3
    行目にあった e09038to が1行にまとめられているし,6行目と7行目に並んで
    いた e09080ys が1行にまとめられている。


    ただし,同じ内容の行でも,隣り合っていなければ1行にまとめられることはない。
    たとえば,上図の例では,env03list.txt の6行目,7行目,10行目は e09080ys
    だが,まとめられたのは6行目と7行目のものだけで,10行目にあった e09080ys
    はそのまま残っている。

    このように,uniqコマンドは,隣り合った同じ内容の複数行を1行にまとめるので
    ある。使い方は,次のようにする。

     % uniq ファイル名


    ◆続いて,wcコマンドを学習する。以下のリンクをクリックして次へ進め。

    次へ進む