paste

テキストファイルを列方向に結合します。catの列板です。

NAME
     paste -- merge corresponding or subsequent lines of files

SYNOPSIS
     paste [-s] [-d list] file ...

github

  • githubのjupyter notebook形式のファイルはこちら

google colaboratory

  • google colaboratory で実行する場合はこちら

環境

筆者のOSはmacOSです。LinuxやUnixのコマンドとはオプションが異なります。

実際に動かす際は先頭の!や先頭行の%%bashは無視してください。

!sw_vers
ProductName:	Mac OS X
ProductVersion:	10.14.6
BuildVersion:	18G95
!bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
Copyright (C) 2007 Free Software Foundation, Inc.

使用例

結合する二つのファイルを作成します。

%%bash
echo -e "a\nb\nc\nd\ne\nf" > temp1.txt
echo -e " 1\n 2\n 3\n 4\n 5\n 6" > temp2.txt
%%bash
paste temp1.txt temp2.txt
a	 1
b	 2
c	 3
d	 4
e	 5
f	 6

3つ以上のファイルも連結できます。

%%bash
echo -e "a\nb\nc\nd\ne\nf" > temp3.txt
echo -e " 1\n 2\n 3\n 4\n 5\n 6" > temp4.txt
paste temp1.txt temp2.txt temp3.txt temp4.txt
a	 1	a	 1
b	 2	b	 2
c	 3	c	 3
d	 4	d	 4
e	 5	e	 5
f	 6	f	 6

代表的なオプション

  • d : 結合文字を指定します。デフォルトはタブです。
  • s : 行と列を反転させます。
%%bash
paste -d _ temp1.txt temp2.txt
a_ 1
b_ 2
c_ 3
d_ 4
e_ 5
f_ 6
%%bash
paste -s temp1.txt temp2.txt
a	b	c	d	e	f
 1	 2	 3	 4	 5	 6