Lから始まるLinux

2章57話
awkコマンド
2章58話 テキスト関連コマンド(その1)
もくじ
2章59話
テキスト関連コマンド(その2)
テキスト関連コマンド(その1)
若木 みどり
お兄ちゃん! コマンドを知れば知るほど 操作の幅が広がるね! 私がまだ知らないコマンドも たくさんあるんだよね?
若木 しげる
うん、たくさんあるよ! 今回はテキスト処理に関する コマンドを扱っていこう!
sort コマンド
若木 しげる
sort 各行を辞書順に並び替えるよ
sort [オプション]... [ファイル]...
若木 しげる
以下を実行してみよう
sort << EOF
555
222
333
111
444
333
EOF
若木 みどり
結果はこうだったよ!
111
222
333
333
444
555
若木 みどり
辞書順に並び替え…これはわかりやすいね!
uniq コマンド
若木 しげる
uniq連続した重複行を取り除くよ
uniq [オプション]... [入力ファイル [出力ファイル]]
若木 しげる
連続していない重複行は削除してくれないんだなので sort と組み合わせて使われることが多いよ
若木 しげる
先ほどの sort の例にuniq を加えてみよう!
sort << EOF | uniq
111
555
333
222
444
333
EOF
若木 みどり
出力は以下のようになったよ!
111
222
333
444
555
若木 みどり
sort の出力では重複していた 3331行しか出力されていないのがわかるね!
tac コマンド
若木 しげる
tac行の順序を逆さまにして表示するよcat を逆さまにした名前なんだ
tac [オプション]... [ファイル]...
若木 しげる
tacヒアドキュメントの内容を処理させてみよう!
tac << EOF
123
456
789
EOF
若木 みどり
うん!実行してみる!
789
456
123
若木 みどり(驚き)
おお!確かに行が逆順になっている!
rev コマンド
若木 しげる
rev各行の文字列を逆順にして表示するよrevert の略なんだ
rev [オプション] [ファイル]...
若木 しげる
これは例を見た方がわかりやすいと思うよ
rev << EOF
123
456
789
EOF
若木 みどり
じゃあ実行して結果を見てみよう!
321
654
987
若木 みどり
なるほど…各行の内容が逆になっているね!
若木 みどり(驚き)
これって tac と組み合わせたら完全に逆さまになるんじゃないかな?
若木 しげる
いい視点だね!試してみよう
rev << EOF | tac
123
456
789
EOF
若木 みどり
どうなってくれるかな…
987
654
321
若木 みどり(笑顔)
ちゃんと期待どおり!全てが逆さまの表示になったね!
まとめ
若木 みどり
今回はテキストを処理するコマンドsort, uniq, tac, rev を学んだよ!
若木 しげる
これらのコマンドはとてもシンプルだけど組み合わせ次第で色々なことができるんだ