6.15. 行の結合【paste】

$ paste[オプション] ファイル1 ファイル2...

paste コマンドを使用すると、指定したファイルの行をタブで区切って結合することができます。結合後のデータは、標準出力へ書き出されます。

以下の add.csv ファイルをもとに paste コマンドの使用例を示します。

$ cat add.cvs 
"山田 太郎","000-0000","東京都港区","緑0-0-0","緑ハウス101","03-0000-0000"
"鈴木 一郎","000-0000","東京都杉並区","青1-1-1","","03-1111-1111"
"田中 花子","000-0000","千葉県千葉市","海2-2","","04-2222-2222"

cut コマンドで最初のフィールドを name.txt ファイルへ保存します(項6.14 参照)。

$ cut -d , -f 1 add.cvs > name.txt
$ cat name.txt 
"山田 太郎"
"鈴木 一郎"
"田中 花子"

cut コマンドで 6番目のフィールドを tel.txt ファイルへ保存します。

$ cut -d , -f 6 add.cvs > tel.txt
$ cat tel.txt 
"03-0000-0000"
"03-1111-1111"
"04-2222-2222"

paste コマンドを使用してこれらのファイルを結合します。

$ paste name.txt tel.txt 
"山田 太郎"    "03-0000-0000"
"鈴木 一郎"    "03-1111-1111"
"田中 花子"    "04-2222-2222"

-d オプションを指定すれば、区切り文字を指定することもできます。例えば、カンマを区切り文字に指定して paste コマンドを実行します。

$ paste -d , name.txt tel.txt 
"山田 太郎","03-0000-0000"
"鈴木 一郎","03-1111-1111"
"田中 花子","04-2222-2222"

また、-s オプションを指定すると、各ファイルの行が結合されるのではなく、各ファイルの行が 1行にまとめられ結合されます。

$ paste -s name.txt tel.txt 
"山田 太郎"    "鈴木 一郎"    "田中 花子"    
"03-0000-0000"  "03-1111-1111"  "04-2222-2222"