見出し画像

EnvaderでLinux基礎コマンドを学ぶ[その7]

Envaderで基礎コマンドを学ぶその7。
今回は、Linux基礎コースの「sort/uniq/diff編」。

自分の復習のためとはいえ、コマンド解説って単調になりがち…。
実際に実務でLinuxコマンドがどう利用されているのかとちょっとイメージが貧困なのもある。このあたりはLinucの勉強もしながら補いたいところ。

その7は、コマンドは「sort」「uniq」「diff」3つ。

sort
sortは、テキストファイルの中身を行単位で、中身を書きかえずに並べ替える。文字や数字関係なく、単純に名前で並べ替えたい場合は以下のコマンドを使用。

sort ファイル名

で、アルファベットならABC順に。日本語ならあいうえ順に並ぶ。
オプションの「-r」をつけることで、逆順に並ぶ。

オプションの「-k」をつけることで、空白でわけられたフィールド毎に並び替えができる。

# sort -k コマンドで、2つ目のフィールドを基準に並び替えた場合
$ sort -k 2 fruit2.txt
004 apple あか
005 banana きいろ
001 grape むらさき
002 orange おれんじ
003 peach ももいろ

uniq
uniqとは、テキストファイルの中身で上下に隣り合った重複行を1つにするコマンド。上下に隣り合った行で重複したものしか1つにできないため、sortなどとと組み合わせて使う。

sort ファイル名 | uniq

【uniqコマンドの主なオプション】
-i  大文字小文字を区別しないで重複行を1つにする
-c  重複している行をカウントする
-u  重複していない行だけを出力する
-d  重複した行だけを出力する

次に「diff」。diffはプログラムやHTMLのソースファイル同士を例えばWindowsだと「Winmerge」といったdiffのツールを使ったりして、差分比較をすることもたまにあるので、なんとなく馴染みがあるといばある。
というこで、2つのファイルの中身を比較するコマンド。

diff
diffとは、2つのテキストファイルを比較し、異なる箇所(差分)を出力する。

diff 1つ目のファイル名 2つ目のファイル名

【diffコマンドの主なオプション】
-s  単純にファイルが同一のものかどうかを表示する(同一の場合はその旨を表示する)
-q ファイルが異なるかのみチェックし、同一の場合は結果を出力しない
-y 比較した結果を横並びで表示する(差分のある行は「
-r  ディレクトリ同士で比較する

そしてEnvaderでは、こんな問題が出題される。うまくコマンド使いこなせなくて、正解したけど、正答とはちょっと違っていた…。もう一回復習~。

sort/uniq/diff編の問題2


もっと新しい繋がり、信頼とコミュニティを築けますように。