Intereting Posts
Мониторинг HTTP-запросов «на лету» в сетевом интерфейсе? gnome-terminal unicode chars не отображается – для локали установлено значение en_US.utf8 Как добавить данные в переменную с помощью \ n в качестве разделителя? Сколько полосок (1) -инга подходит для модулей ядра? Использовать прокси-сервер socks для команд в терминале file command + как просмотреть все результаты из команды file Как вы скрываете «Generic USB SD Reader» в nemo файловом менеджере, когда карты нет? Понять нумерацию портов виртуального моста Linux Запуск сценария bash в сценарии bash Объединение существующих исходных папок в mksquashfs Как остановить запущенное приложение от запуска нового экземпляра, если он уже запущен? Использует ли Debian GB или GiB для своего менеджера разделов во время установки? Показывать загрузочный всплеск только в системе ramdisk Почему заканчивается вкладка yum? Двойной монитор на Arch Linux заставляет компьютер не приостанавливать работу

Как чередовать строки двух или более файлов?

Я попытался получить два файла в одном файле. Я попытался выполнить команду:

cat file1 file2 

но здесь данные file2 добавляются к file1 .

Мне нужна file1 1-я строка, за которой следует первая строка file2 , а вторая строка file1 вторая строка file2 и т. Д.

Может ли кто-нибудь сказать мне, как сделать это простым способом?

Для этого есть приложение!

 $ cat file1 file1 line1 file1 line2 $ cat file2 file2 line1 file2 line2 

Теперь, если вы передадите эти файлы в качестве аргументов для paste :

 $ paste -d' ' file1 file2 file1 line1 file2 line1 file1 line2 file2 line2 

Если по «file1 1-й строке, за которой следует первая строка file2, а вторая строка file1, вторая строка второго файла и т. Д.», Вы имеете в виду, что вам нужна новая строка между каждой вставкой, просто скопируйте параметр -d (разделитель).

 $ paste -d'\n' file1 file2 file1 line1 file2 line1 file1 line2 file2 line2 

POSIX Awk; это работает с произвольным количеством файлов, и файлы даже не должны иметь одинаковое количество строк. Сценарий продолжается до тех пор, пока все файлы не будут содержать строки:

 BEGIN { do { br = ch = 0 while (++ch < ARGC) if (getline < ARGV[ch]) { printf ch < ARGC - 1 ? $0 FS : $0 RS br = 1 } } while (br) } 
 paste -d '\n' file1 file2 > file3 

где file1 и file2 являются входными файлами, а file3 будет создан.