【 paste 】コマンド――複数のファイルを行単位で連結するLinux基本コマンドTips(101)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「paste」コマンドです。

» 2017年04月07日 05時00分 公開
[西村めぐみ@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、複数のファイルを行単位で連結する「paste」コマンドです。

pasteコマンドとは?

 「paste」は、複数のファイルを行単位で連結するコマンドです。「paste ファイル1 ファイル2」で「ファイル1の1行目とファイル2の1行目」、「ファイル1の2行目とファイル2の2行目」……という行が出力されます。Excelに親しんでいる方は、「列のコピー」と考えると動作をイメージしやすいかもしれません。



pasteコマンドの書式

paste [オプション] ファイル1 ファイル2 ファイル3……

※[ ]は省略可能な引数を示しています




pasteコマンドの主なオプション

 pasteコマンドの主なオプションは次の通りです。

短いオプション 長いオプション 意味
-d 区切り文字 --delimiters=区切り文字 区切り文字を指定する(本文参照
-s --serial 1行ごとではなく、ファイル単位で連結する


ファイルを行単位で連結する

 「paste ファイル1 ファイル2」で、ファイル1とファイル2を行単位で連結します。出力は「ファイル1の1行目 タブ(TAB) ファイル2の1行目」、「ファイル1の2行目 タブ(TAB) ファイル2の2行目」……のようになります。

 3つ以上のファイルを指定することも可能で、この場合も単純に各ファイルの1行目、各ファイルの2行目……と出力されることになります。

コマンド実行例

paste ファイル1 ファイル2 ファイル3

(ファイル1とファイル2とファイル3を連結する)(画面1


画面1 画面1 pasteコマンドで3つのファイルを連結した

 なお、画面1では、「list1-1.txt list1-2.txt list1-3.txt」を「list1-[1-3].txt」と指定しています。



区切り文字を変更する

 区切り文字は「-d」オプションで指定します。例えば、カンマ(,)区切りで出力したい場合は「-d ,」と指定します。

 複数の文字を指定した場合、1文字目がファイル1とファイル2の区切り、2文字目がファイル2とファイル3の区切り……となります。

コマンド実行例

paste -d , ファイル1 ファイル2 ファイル3

(「,」で区切って連結する)

paste -d ,: ファイル1 ファイル2 ファイル3

(「,」と「:」で区切って連結する)(画面2


画面2 画面2 「-d」オプションで区切り文字を変更できる


出力する項目を指定する

 pasteコマンドは単純に行単位に貼り付けるだけで、「join」コマンド(本連載第100回参照)のように出力項目を指定することはできません。

 連結するテキストファイルがタブや「,」などで区切られている場合は、「cut」コマンド(本連載第60回参照)を使って必要な項目だけ切り出すとよいでしょう。

 例えば、以下の画面3では、各項目がタブで区切られているテキストファイル「list1-1.txt」「list1-2.txt」「list1-3.txt」を連結し(画面1参照)、cutコマンドで2番目、4番目、5番目の項目を出力しています。

画面3 画面3 タブ区切りのテキストファイルを連結して、cutコマンドで2番目、4番目、5番目の項目を出力した


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー(LinuxはPC-486DXから)。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、ライターとして活動。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。