pasteコマンドでファイルを列方向に結合する方法|区切り文字の変更やcutとの組み合わせもコマンド

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド, LinuxコマンドP-T, テキスト処理コマンド > pasteコマンドでファイルを列方向に結合する方法|区切り文字の変更やcutとの組み合わせもコマンド
「2つのファイルを同じ行番号同士で横に並べたい」
「リストをカンマ区切りの1行に変換したい」

テキストデータを縦ではなく「横方向」に結合したい場面では、pasteコマンドの出番です。

この記事では、pasteコマンドの基本的な使い方から、区切り文字の変更、行の1行化、cutとの組み合わせまで、実務で使えるテクニックを解説します。
【この記事でわかること】
・paste は複数のファイルを行単位で横に結合するコマンド
・-d で区切り文字、-s で行を1行にまとめる動きに切り替えられる
・cut との組み合わせで、列の入れ替えや再構成が手軽に行える

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

pasteコマンドとは?

paste は、複数のファイルを同じ行番号同士で横に結合するコマンドです。結合された出力はデフォルトでタブ区切りになります。

pasteの基本的な使い方

1. 2つのファイルを横に結合する

# file1.txtの内容 $ cat file1.txt 111111 222222 333333 # file2.txtの内容 $ cat file2.txt abcdef ghijkl mnopqr # 2つのファイルを横に結合 $ paste file1.txt file2.txt 111111 abcdef 222222 ghijkl 333333 mnopqr

同じ行番号のデータがタブで区切られて1行に結合されます。

2. -d(区切り文字を変更する)

デフォルトのタブ区切りを、カンマやスペースなど任意の文字に変更できます。

# カンマ区切りで結合 $ paste -d ',' file1.txt file2.txt 111111,abcdef 222222,ghijkl 333333,mnopqr # コロン区切りで結合 $ paste -d ':' file1.txt file2.txt 111111:abcdef 222222:ghijkl 333333:mnopqr

CSV形式のデータを作成する場合に便利です。

3. -s(ファイルごとに1行にまとめる)

-s オプションを使うと、各ファイルの全行を1行にまとめて出力します。

# ファイルの全行を1行にまとめる $ paste -s file1.txt 111111 222222 333333 # カンマ区切りでまとめる $ paste -s -d ',' file1.txt 111111,222222,333333

リストをカンマ区切りの1行に変換したい場合に使えます。

4. 3つ以上のファイルを結合する

# 3つのファイルを結合 $ paste file1.txt file2.txt file3.txt

実務で使えるTips

標準入力との組み合わせ

-(ハイフン)を使うと、標準入力をファイルの代わりに使えます。

# lsの出力を3列に並べる $ ls | paste - - - file1.txt file2.txt file3.txt file4.txt file5.txt file6.txt

cutコマンドとの組み合わせ

cut で列を抽出し、paste で再結合する、というパターンはテキスト処理の定番です。

# CSVの1列目と3列目だけを抽出して結合 $ cut -d ',' -f 1 data.csv > col1.tmp $ cut -d ',' -f 3 data.csv > col3.tmp $ paste -d ',' col1.tmp col3.tmp

paste と join と cut の使い分け|どのコマンドをいつ使うか

「paste コマンド」で辿り着いた方の多くは、似たような名前の join / cut との違いで止まっている段階だと思います。3つは見た目が似ていますが、役割は全く別物です。

コマンド役割典型ユースケース
paste2ファイルを行番号で機械的に横並び結合2列のリストを1つのCSVに統合
join2ファイルをキー列の一致で結合(SQLのJOIN相当)ユーザーID別のデータマージ
cut1ファイルから特定の列を抽出CSVの3列目だけ取り出す

# paste:行番号で機械的に結合(キー一致は不要) $ cat name.txt Tanaka Suzuki Sato $ cat score.txt 85 72 91 $ paste name.txt score.txt Tanaka 85 Suzuki 72 Sato 91 # join:キー列で結合(事前にsortが必要) $ cat users.txt 1 Tanaka 2 Suzuki $ cat scores.txt 1 85 2 72 $ join users.txt scores.txt 1 Tanaka 85 2 Suzuki 72 # cut:列を抽出 $ echo "a,b,c,d,e" | cut -d, -f3 c

私もログ突合の作業で paste を使って失敗した経験があります。2ファイルの行数が違うと、片方が先に終わってもう片方の残り行が「空っぽの相手」と結合されて変な出力になります。「ユーザーIDに紐づくデータを突き合わせる」のは paste ではなく join の仕事です。

よくある質問(FAQ)

paste で結合するファイルの行数が違うとどうなりますか?

短い方のファイルが先に終わり、残りの行は「空っぽの相手」と結合されます。例えば3行のファイルAと5行のファイルBを paste A B すると、後半2行はタブの後に B の行だけが出ます。行数を揃えたいなら、事前に wc -l で両者の行数を確認し、不足分を空行で埋めるか、join でキー一致結合に切り替えるのが安全です。

CSVファイルを作るのに paste を使えますか?

使えます。paste -d, name.txt mail.txt > users.csv でカンマ区切りCSVが1コマンドで生成できます。デフォルトはタブ区切りなので、-d で区切り文字を指定するだけです。日本語データを含む場合は事前に nkf -w 等でUTF-8 化しておくと文字化けを防げます。

paste -s と paste の違いは?

paste(オプションなし)は2つのファイルを横並びpaste -s1ファイル内の全行を1行にまとめる動作です。例えば3行のファイルに paste -s -d, を実行すると 行1,行2,行3 という1行になります。リストをカンマ区切りに変換する典型パターンとして覚えておくと便利です。

本記事のまとめ

やりたいこと コマンド
ファイルを横に結合(タブ区切り) paste file1.txt file2.txt
カンマ区切りで結合 paste -d ',' file1.txt file2.txt
全行を1行にまとめる paste -s file1.txt
リストをカンマ区切り1行に変換 paste -s -d ',' file1.txt
出力を3列に並べる ls | paste - - -

テキスト処理の引き出しを増やしたい方へ

paste は地味ですが、CSV加工やデータ整形で確実に役立つ基本コマンドです。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。