目次
はじめに
みなさま、pasteコマンドをご存じでしょうか?
複数のファイルをひとつのファイルにマージしたいとき、まず思い浮かぶのは、
catコマンドで、リダイレクトして、任意のファイルに追記する方法だと思います。
この場合、行単位でのマージになりますが、列単位でマージしたいと思ったことはありませんでしょうか?
はい。そんな時は、pasteコマンドが実現してくれます!
環境
OS : AlmaLinux 8
pasteバージョン : 8.30
使い方
使い方はいたって簡単です。
まずは、サンプルファイルとして、下記for文でapacheのアクセスログから、9時と10時のログに対して10分単位の行数をファイルに出力します。
for H in 09 10
do
for M in {0..5}
do
grep "31/Oct/2022:$H:$M" /var/www/vhosts/hoge.jp/logs/access_ssl_log | wc -l
done | tee $H.txt
done
作成されたファイルの中身を確認してみます。
$ cat 09.txt
296
135
93
34
101
98
$ cat 10.txt
144
170
204
47
119
809
$
pasteコマンドで、2つのファイルを引数として指定すると、マージされて表示されます。
$ paste 09.txt 10.txt
296 144
135 170
93 204
34 47
101 119
98 809
$
まとめ
いかがでしたか?
利用頻度は高くないかと思いますが、いざというとき、
こちらの記事が参考になれば幸いです。