Linux の paste コマンドで カンマ区切りのデータを作る

paste というコマンドがあります。

2 つのファイルを行ごとに連結するするコマンドなのですが 何か“ちょっと違う”使い道がないか考えていました。 今回は、このコマンドでカンマ区切りのデータを作ってみたいと思います。

まずは paste コマンドのおさらい。
次の 2 つのファイル user.txt と color.txt を処理します。

sato
suzuki
watanabe
yamada
red
black
white

この 2 つのファイルをを列ごとに連結します。

$ paste user.txt color.txt

sato    red
suzuki  black
watanabe        white
yamada

デフォルトでは、列は TAB で連結されます。 color.txt が 1 行少ないので 最後の行は "yamada" のみ出力されます。

区切りを変えることもできます。

$ paste -d "=" user.txt color.txt

sato=red
suzuki=black
watanabe=white
yamada=

"-s" オプションを付けると、ファイルごとに 1 行になります。

$ paste -s user.txt color.txt

sato    suzuki  watanabe        yamada
red     black   white

標準入力を受けることもできます。

$ cat color.txt | paste -s

red black white

これを利用することで、 標準入力を受けて カンマ区切りで出力することができます。

$ ls | paste -s -d ","

a.txt,b.txt,c.txt,d.txt

Google サイト内検索

Amazonアソシエイト