Ответ 1
Вы можете сделать это либо с помощью чистого метода bash
, либо с помощью инструмента под названием paste
:
Ваши файлы:
[jaypal:~/Temp] cat file1
line1.a
line2.a
line3.a
line4.a
[jaypal:~/Temp] cat file2
line1.b
line2.b
line3.b
line4.b
Pure Bash Решение с использованием дескрипторов файлов:
< & 3 сообщает Bash прочитать файл в дескрипторе 3. Вы должны знать, что дескрипторы 0, 1 и 2 используются Stdin, Stdout и Stderr. Поэтому мы должны избегать их использования. Кроме того, дескрипторы после 9 используются Bash внутренне, поэтому вы можете использовать любое значение от 3 до 9.
[jaypal:~/Temp] while read -r a && read -r b <&3; do
> echo -e "$a\n$b";
> done < file1 3<file2
line1.a
line1.b
line2.a
line2.b
line3.a
line3.b
line4.a
line4.b
Утилита для вставки:
[jaypal:~/Temp] paste -d"\n" file1 file2
line1.a
line1.b
line2.a
line2.b
line3.a
line3.b
line4.a
line4.b