茶漬けの技術メモ

Golang, Rubyで趣味開発します。テックニュース書いたり。ガジェット触ったり。

ファイル内の比較にはcommが便利

2つのファイルの中身を比較したいときがあったのですが、 commコマンドなるものがあるらしいので、メモ。


準備

japanese.txt

バナナ
オレンジ
りんご
ぶどう
なし
みかん


mix.txt

banana
orange
apple
grape
バナナ
オレンジ
りんご
ぶどう
commを使ってみる
comm japanese.txt mix.txt
=>
    banana
    orange
    apple
    grape
        バナナ
        オレンジ
        りんご
        ぶどう
なし
みかん

見方は、

  • 左: 最初のファイルにのみ存在する行
  • 真ん中: 2つ目のファイルにのみ存在する行
  • 右: 両方のファイルに共通する行

オプション

左の行を消したいとき
comm -1 japanese.txt mix.txt

左右の行を消したいとき
comm -13 japanese.txt mix.txt

こんな感じで行の番号を指定すればおk