「リストをカンマ区切りの1行に変換したい」
テキストデータを縦ではなく「横方向」に結合したい場面では、
pasteコマンドの出番です。この記事では、pasteコマンドの基本的な使い方から、区切り文字の変更、行の1行化、cutとの組み合わせまで、実務で使えるテクニックを解説します。
・paste は複数のファイルを行単位で横に結合するコマンド
・-d で区切り文字、-s で行を1行にまとめる動きに切り替えられる
・cut との組み合わせで、列の入れ替えや再構成が手軽に行える
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
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
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
3. -s(ファイルごとに1行にまとめる)
-s オプションを使うと、各ファイルの全行を1行にまとめて出力します。# ファイルの全行を1行にまとめる $ paste -s file1.txt 111111 222222 333333 # カンマ区切りでまとめる $ paste -s -d ',' file1.txt 111111,222222,333333
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 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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:expandコマンドでタブをスペースに変換する方法|桁揃えやunexpandとの使い分けも
- 前のページへ:cutコマンドの使い方|区切り文字でフィールドを抽出する方法
- この記事の属するカテゴリ:Linuxコマンド・LinuxコマンドP-T・テキスト処理コマンドへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます