「Linux標準教科書」読書会レポート vol.4

株式会社リゾーム 技術部 システム開発 第3グループの藤岡です。 「Linux標準教科書」読書会の第4回レポートです。第3回目のレポートはこちらになります。

tech.rhizome-e.com

読書会の題材

前回に引き続きLinux標準教科書を題材としています。

4回目レポート

今回は5章「基本的なコマンド2」で、参加者は6名でした。

それぞれの感想・意見交換

ファイルのタイムスタンプの変更(touch)

  • 空のファイルを作成する用途でしか使った事がない
  • タイムスタンプをいじるよりは空のファイル作成に使いそう
  • 更新時間を任意の時間に指定できるの知らなかったけど、あまりいい使い方はなさそう

ファイルの一部の取得(head, tail)

  • 使ったことがない。どういう場面で使うのか
  • shellでファイルの先頭の数行を取得して何か操作するときに使ったかな
  • 行頭にそのコードの説明を入れる運用にするといった使い方が載っていてなるほどと思った
  • 最初のメタデータを抽出して加工したり、CSVのヘッダーを抽出したい時に使うかな
tail
  • -fと組み合わせて使う以外使ってないかもしれない
    • ログファイルを見るときによく使う
    • ログファイルを監視できるのは便利そう
  • よく less +F が tail -f の上位互換として紹介されている
    • less +F だとそのまま検索とかもできる

ファイルのソート(sort)

  • uniqと合わせる以外であまり使ったことない
  • ソートしてさっきのheadとかと組み合わせて情報取ってきたりするのだろうか
  • 列を指定してソートできるのは知らなかった
  • 数字をソートに使う場合は要注意
    • -nオプションで数字と文字を区別することは忘れそうだから覚えておく
  • -tで区切り文字を指定できるのでcsvファイルのソートも出来そう

行の重複の消去(uniq)

  • 前回の正規表現と合わせて知っていると、できることが広がるコマンドだと思う
  • 重複する行を連続にしておかないと重複を除去できない点に注意が必要
  • 「重複している行だけ出力(-d)」や「重複しなかった行だけ出力(-u)」できるオプションがあるのが地味に便利
  • 特定の条件に合致しないものを抽出したりできる
    • 特定の条件に合致するデータを持ってきて意図的に重複させる使い方も

文字列の置き換え(tr)

  • 文字の置き換え以外にも文字を削除するオプションもあったりして汎用性高そう
  • 大文字を一括で小文字に変換するみたいなことをしたい時に使える
  • 文字列の置き換えが出来ないので、似たコマンドのsedをよく使う

ファイルの比較(diff)

  • 普段の業務で使うとすると-rをつけてディレクトリごとの差分をとることが多そう
  • -yオプションは横並びで差分が表示されるため見やすいと思った
  • Railsのバージョンアップでよく見る
    • アップデートタスクを実行した際に新しいファイルや既存のファイルの変更を確認する時に表示される
  • 研究で過去のプログラムの変更箇所の確認に使用した
  • 設定ファイルの書き換え前後の比較とかで使う
  • 変更のあったファイルを取得できるのでCIやCDで使うことがあるかも

まとめ

テキストファイルを処理するコマンドはtailを使う程度で他はあまり使ってませんでした。 今回の意見交換を通じて、どのようなシーンで使うかが分かりました。
学んだ事を活かして、業務を効率良く出来るようにしたいと思います。
次回は第6章「viエディタ」です。