paste

作成日:2021-04-08
最終更新日:

paste

paste は Unix 系のコマンドである。 cat コマンドは複数のファイルを順次出力していくが、 paste は入力を複数のファイルから行単位で抽出するコマンドである。 つまり、paste の入力ファイルが2つあるとすると、出力は、
1行目がファイル1の1行めとファイル2の1行め
2行目がファイル1の2行めとファイル2の2行目
...
n行目がファイル1のn行めとファイル2のn行目
という順序で出力される。
https://www.atmarkit.co.jp/flinux/rensai/linuxtips/347joinfilebyline.html
https://www.atmarkit.co.jp/ait/articles/1704/07/news018.html

オプション

-d オプションは、区切り記号を指定する。例えば、「,」で区切る場合は
$ paste -d , file1 file2
となる。なお、デフォルトの区切り記号はタブである。

最初のファイルが標準入力の場合は ― を指定する。つまり、 $ paste file1 file2
は次と同じだ。
$ cat file1 | paste - file2

paste の利用例

全文検索エンジン Namazu では、検索速度を高めるために種々のインデックスを作成している。 これらのインデックスのうち、1ファイルに1つだけあるフィールドを集めた NMZ.field.* には多くの種類がある。 たとえば、ある URL の作者情報を知るときには、次のようにすればよい。

$ nkf -u NMZ.field.from | paste - NMZ.field.uri

作者情報は NMZ.field.from に蓄えられている。これを最初に UTF-8 に変換してから paste で突き合わせる。 というのは、NMZ は EUC で処理され、出力も EUC となっているからだ。一方、URL はすべて ASCII の範囲だから、 NMZ.field.uri では nkf を通す必要はない。

まりんきょ学問所コンピュータの部屋UNIX 手習い > paste


MARUYAMA Satosi