【paste】bash/シェルスクリプトマニアックコマンドあれこれ4

pasteコマンド

pasteコマンドは、複数のファイルを行単位で連結するコマンドです。
$ pasteファイル1 ファイル2 で「ファイル1の1行目とファイル2の1行目」、「ファイル1の2行目とファイル2の2行目」……という行が出力されます。
Excelに親しんでいる方は、「列のコピー」と考えると動作をイメージしやすいかもしれません。

ファイルの連結

1つ目のファイル

$ cat emp-number.txt
100
200
300
400
500

2つ目のファイル

$ cat emp-firstname.txt
Emma
Alex
Madison
Sanjay
Nisha

3つ目のファイル

$ cat emp-lastname.txt
Thomas
Jason
Randy
Gupta
Singh

pasteコマンドで結合

$ paste emp-number.txt emp-firstname.txt emp-lastname.txt
100     Emma    Thomas
200     Alex    Jason
300     Madison Randy
400     Sanjay  Gupta
500     Nisha   Singh
ヒント
すごい!

区切り文字を指定する

区切り文字は「-d」オプションで指定します。
例えば、カンマ(,)区切りで出力したい場合は paste -d, と指定します。

$ paste -d emp-number.txt emp-firstname.txt emp-lastname.txt
100,Emma,Thomas
200,Alex,Jason
300,Madison,Randy
400,Sanjay,Gupta
500,Nisha,Singh
ヒント
すごい!!

行列を入れ替える

paste -s (–serialオプション)で、行列を入れ替えて結合します。

$ paste -s emp-number.txt emp-firstname.txt emp-lastname.txt
100	200	300	400	500
Emma 	Alex 	Madison 	Sanjay 	Nisha
Thomas 	Jason 	Randy 	Gupta 	Singh
$
ヒント
このオプションを知らなければ、ループしまくりで作ってしまうところですよね。

書籍の紹介

【join】bash/シェルスクリプトマニアックコマンドあれこれ5

【join】bash/シェルスクリプトマニアックコマンドあれこれ5

【jot】Bash/シェルスクリプトマニアックコマンドあれこれ3

【jot】Bash/シェルスクリプトマニアックコマンドあれこれ3