【Linux】複数ファイルを行ごとに水平に連結する:paste

Linux

どーも!marusukeです!

複数ファイルを行ごとに水平に連結するコマンドpasteについて説明します!

コマンドでできること

paste コマンドは、複数のファイルを並列に結合して出力するために使用されます

このコマンドは、各ファイルから1行ずつ読み取り、タブ区切り(デフォルト)で並べて1行に結合し、標準出力に出力します。ファイルの列を横に並べて1つのテーブルのように見せることができます。

コマンドの使用例

test.txttest2.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ファイルなど、複数のデータソースを並列に表示したいときに便利です

以上です!

ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました