добавить строку из файла в другой файл как строку

добавить строку из файла в другой файл как строку

У меня есть файл file1, содержимое которого выглядит следующим образом:

файл1

6 столбцов получены из 6 разных хостов перед их представлением с помощью команды "-exec cp". Это просто для информации.

Теперь у меня есть список из 6 имен хостов (file2), которые я хочу добавить в качестве первой строки в file1.

Содержимое файла file2 приведено ниже.

HOST1 
HOST2 
HOST3 
HOST4 
HOST5 
HOST6 

Мне нужен такой конечный результат.

окончательный результат

Я могу добавить столбец, но не строку.

решение1

Вот один из способов:

awk -vhead="$(tr '\n' ' ' <file2)" 'BEGIN{print head}{print}' file1 > newfile

Команда trзаменяет символы новой строки пробелами, преобразуя "столбец" в file2"строку". Это передается awkкак headпеременная, которая печатается перед всем остальным. Затем каждая строка входного файла просто печатается.

В качестве альтернативы вы можете сделать все это за awk:

awk 'NR==FNR{printf "%s ",$0; next}FNR==1{print ""}1;' file2 file1 > newfile

NR— это номер текущей входной строки и FNRномер строки текущего файла. Они будут равны только во время чтения первого файла. The printf "%s ",$0; nextнапечатает текущую строку без a \nв конце и перейдет к следующей. The FNR==1{print ""}просто добавляет a \nпосле того, как заголовок был напечатан, а The 1;— это awkсокращение для «напечатать эту строку».

решение2

( echo $(cat file2) ; cat file1 ) | column -t > file3

Связанный контент