Skip to main content

2行を1行にする

やりたいこと/悩み

  • ディスク使用量をログに雑に残していたとする
    • date コマンドと df コマンドを実行するだけのシェルを cron 実行
  • 知りたいパーティションだけ grep すると、時刻が分からない
  • 時刻と 知りたいパーティションを grep すると 時刻とデータが交互に出てくることになる
  • 各1行で出てくると加工しやすいのだけど..
bash
cat /tmp/df.log | grep -E '( JST | /Volumes/Data2)'
txt
Sat Feb 28 09:00:00 JST 2026
/dev/disk5s1 5.5T 1.8T 3.8T 33% /Volumes/Data2
Sat Feb 28 09:10:00 JST 2026
/dev/disk5s1 5.5T 1.8T 3.8T 33% /Volumes/Data2
Sat Feb 28 09:20:00 JST 2026
/dev/disk5s1 5.5T 1.8T 3.8T 33% /Volumes/Data2

方法

  • paste コマンドを使えば良い
  • paste - - とやると、2行ずつを1行にまとめて出してくれる
bash
cat /tmp/df.log | grep -E '( JST | /Volumes/Data2)' | paste - -
txt
Sat Feb 28 09:00:00 JST 2026    /dev/disk5s1    5.5T  1.8T  3.8T  33% /Volumes/Data2
Sat Feb 28 09:10:00 JST 2026 /dev/disk5s1 5.5T 1.8T 3.8T 33% /Volumes/Data2
Sat Feb 28 09:20:00 JST 2026 /dev/disk5s1 5.5T 1.8T 3.8T 33% /Volumes/Data2

以下広告