エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

複数のテキストファイルの内容を横に並べて出力する

複数のテキストファイルの各行を横に並べて表示したいとき、たとえば次のような abc.txt と 123.txt というファイルがあったとき、

abc.txt:

A
B
C

123.txt

1
2
3

次のようにファイルディスクリプタを指定してリダイレクトすると同時に読み込めるので、あとは一行に並べて出力するとできる模様。

while read -u 4 a && read -u 5 n
do
  echo $a $n
done 4< abc.txt 5< 123.txt

結果。

A 1
B 2
C 3

一行野郎はこんな感じ。

while read -u 4 a && read -u 5 n; do echo $a $n; done 4< abc.txt 5< 123.txt

参考にした Stack Overflow: How to read from two files in the same time shell - Stack Overflow