Saturday, November 10, 2007

2つのファイルを行単位でマージする

例えば、ファイル123.txt


1
2
3
4

とファイルabc.txt

a
b
c
d

の2つのファイルを

1 a
2 b
3 c
4 d

のようにマージするためには、

j=0;for i in `cat abc.txt`;do j=$((j+1));\
echo `sed -ne "$j p" abc.txt` `sed -ne "$j p" 123.txt` ;done


でいけます。ただし(1)2つのファイルのうち行数の長い方をcatにかます(2)遅い、
というのがあります。

No comments: