![見出し画像](https://assets.st-note.com/production/uploads/images/77204213/rectangle_large_type_2_f310851df42d66eefdb0825c2bad6597.png?width=800)
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では、こんな問題が出題される。うまくコマンド使いこなせなくて、正解したけど、正答とはちょっと違っていた…。もう一回復習~。
![](https://assets.st-note.com/img/1650902674811-UGD5PC2szN.png?width=800)
もっと新しい繋がり、信頼とコミュニティを築けますように。