zip столбцы из отдельных файлов вместе в Bash
У меня есть два файла, которые оба содержат список слов. Существует ли простой способ заархивировать содержимое файлов в один новый файл в bash, чтобы результирующий файл имел два столбца, например:
file1_line1 file2_line1 file1_line2 file2_line2 file1_line3 file2_line3 file1_line4 file2_line4
2 ответа
Решение
НАЗВАНИЕ
paste
- объединить соответствующие или последующие строки файлов
СИНТАКСИС
paste [-s] [-d list] file ...
ОПИСАНИЕ
paste
Утилита объединяет соответствующие строки заданных входных файлов, заменяя все символы новой строки, кроме последнего, одним символом табуляции и записывает полученные строки в стандартный вывод.
Вставить приведет вас на полпути, но вам понадобится sed, чтобы добавить имя файла к словам
Поместите это в скрипт оболочки и передайте два файла в качестве аргументов.
#!/bin/sh
paste $1 $2 | sed -e "s/^\([^ ]\+\)\s\+\([^ ]\)/$1_\1 $2_\2/"