GNU Core Utilities/paste
paste
コマンドは、複数のファイルや標準入力からの行を結合して、横に並べて出力するためのコマンドです。主にデータの統合や複数のカラムを並べて表示する際に使用されます。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。
基本的な使い方
編集paste [オプション] [ファイル...]
主なオプション(GNU coreutils版)
編集主なオプション オプション 説明 -d, --delimiter=DELIM
フィールドの区切り文字を指定(デフォルトはタブ) -s, --serial
ファイルの内容を縦に並べて結合 -z, --zero-terminated
出力をヌル文字で区切る -A, --append
既存の行の後に追加する -o, --output-delimiter=DELIM
出力時の区切り文字を指定
例
編集ファイルを横に結合(デフォルトのタブ区切り)
編集paste file1.txt file2.txt
file1.txt
と file2.txt
を横に結合して表示(タブ区切りで出力)。
区切り文字を指定して結合
編集paste -d ',' file1.txt file2.txt
file1.txt
と file2.txt
をカンマ区切りで結合。
縦に並べて結合
編集paste -s file1.txt file2.txt
file1.txt
と file2.txt
を縦に並べて結合。
ヌル文字で区切った出力
編集paste -z file1.txt file2.txt
出力をヌル文字で区切って表示。
出力時の区切り文字を変更
編集paste -o ';' file1.txt file2.txt
出力時にセミコロンで区切って結合。
FreeBSD 版との違い
編集FreeBSD でも paste
コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。
主な違い:
編集-z
(ヌル文字区切り)オプションが FreeBSD にはない- FreeBSD 版の
paste
には、-z
オプションがないため、ヌル文字で区切られた出力を扱うことができません。
- FreeBSD 版の
-A
(行追加)オプションが FreeBSD にはない- FreeBSD 版の
paste
には、-A
オプションがないため、既存の行の後に追加する機能を使用できません。
- FreeBSD 版の
- GNU coreutils 版を FreeBSD で使う方法
coreutils
パッケージをインストールするとgpaste
という名前で GNU 版paste
が使える。
pkg install coreutils gpaste file1.txt file2.txt # GNU coreutils 版の paste
詳しくは、それぞれの環境で man paste
を確認してください。