ファイル内文字列の結合
pasteコマンド
paste
コマンドは、2つのファイルを行単位で結合します。利用方法は次のようになります。
$ paste [オプション] [ファイル名]
FreeBSDなどでは、ファイル名に「-
」を指定した場合のみ、標準入力から読み込みます(GNU pasteでは、ファイル名が与えられない場合にも、標準入力から読み込みます)。
主なオプションは次のとおりです。
オプション | 説明 |
---|---|
-d | 区切り文字を指定する(デフォルトはタブ) |
-s | 1つのファイルの各行を1行に連結できます |
例)2つのファイルの内容を結合して出力する
次のようなファイルに対して、paste
コマンドを適用してみます。
$ cat file1 3, 8 5, 12 1, 3
$ cat file2 30, 2 4, 8 5, 9
$ paste file1 file2 3, 8 30, 2 5, 12 4, 8 1, 3 5, 9
$ paste -s -d '\n' file1 file2 3, 8 5, 12 1, 3 30, 2 4, 8 5, 9
「-s
」オプションで1行に連結、「-d '\n'
」オプションにより改行を区切り文字にすることで、ファイルの内容を順番に出力しています(cat file1 file2
と同じ働きです)。
なお、「> ファイル名
」と指定することで、指定したコマンドの実行結果をファイルに書き込めます。
$ paste -s -d '\n' file1 file2 > file3
例)lsコマンドの結果を3列で表示する
$ ls | paste - - - a.txt b.txt c.txt d.txt e.txt f.txt