at_shiita.ishigaki
2022年2月2日 8時51分
複数のファイルの行を連結するにはpasteコマンドを使用します。
[armadillo ~]# cat > num.txt << '__EOF__'
1
2
3
__EOF__
[armadillo ~]# cat > hoge.txt << '__EOF__'
hoge
fuga
piyo
__EOF__
[armadillo ~]# cat > foo.txt << '__EOF__'
foo
bar
baz
__EOF__
[armadillo ~]# paste num.txt hoge.txt fuga.txt
1 hoge foo
2 fuga bar
3 piyo baz
行と列を入れ替える場合は-sオプションを使用します。
[armadillo ~]# paste -s num.txt hoge.txt foo.txt
1 2 3
hoge fuga piyo
foo bar baz
区切り文字をタブから変える場合は-dオプションを使用します。
区切り文字を,(カンマ)にすることでcsvファイルを作るときにも使用することができます。
また、区切り文字は各列毎に変更することができます。
※ここでは例として、区切り文字を,(カンマ)とした場合と、一つ目の区切り文字を,(カンマ)とし、二つ目の区切り文字を+とした場合について記載します。
[armadillo ~]# paste -d , num.txt hoge.txt foo.txt
1,hoge,foo
2,fuga,bar
3,piyo,baz
[armadillo ~]# paste -d ,+ num.txt hoge.txt foo.txt
1,hoge+foo
2,fuga+bar
3,piyo+baz