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
$
- ヒント
- このオプションを知らなければ、ループしまくりで作ってしまうところですよね。