どーも!marusukeです!
複数ファイルを行ごとに水平に連結するコマンドpaste
について説明します!
コマンドでできること
paste
コマンドは、複数のファイルを並列に結合して出力するために使用されます
このコマンドは、各ファイルから1行ずつ読み取り、タブ区切り(デフォルト)で並べて1行に結合し、標準出力に出力します。ファイルの列を横に並べて1つのテーブルのように見せることができます。
コマンドの使用例
test.txt
とtest2.txt
を水平に結合する
# test.txtの中身
test.txt
a,b,c,d,e,f,g
h,i,j,k,l,m,n
# test2.txtの中身
test2.txt
a,b,c,d,e,f,g
h,i,j,k,l,m,n
区切り文字を指定せずに結合した時は以下のようになります
paste test.txt test2.txt
test.txt test2.txt
a,b,c,d,e,f,g a,b,c,d,e,f,g
h,i,j,k,l,m,n h,i,j,k,l,m,n
区切り文字を:
で結合した時は以下のようになります
paste -d : test.txt test2.txt
test.txt:test2.txt
a,b,c,d,e,f,g:a,b,c,d,e,f,g
h,i,j,k,l,m,n:h,i,j,k,l,m,n
-s
オプションで、各ファイルを行を1行にして縦に結合した場合は以下のようになります
paste -s test.txt test2.txt
test.txt a,b,c,d,e,f,g h,i,j,k,l,m,n # この行はtest.txt
test2.txt a,b,c,d,e,f,g h,i,j,k,l,m,n # この行はtest2.txt
-s
オプションで、test.txt
の中身を1行にした場合は以下になります
paste -s test.txt
test.txt a,b,c,d,e,f,g h,i,j,k,l,m,n
pasteコマンドのオプション
オプション | 説明 |
---|---|
-d | 結合する際に使用する区切り文字を指定します。(デフォルトはタブです) 例: paste -d":" file1.txt file2.txt |
-s | ファイルを縦ではなく、横に連結します。各ファイルの内容を行ではなく、1つの大きな行として出力します。 |
paste
コマンドは、ログファイルやCSVファイルなど、複数のデータソースを並列に表示したいときに便利です
以上です!
ここまで読んでいただきありがとうございました!
コメント