파일의 행을 다른 파일에 행으로 추가

파일의 행을 다른 파일에 행으로 추가

내용이 다음과 같은 file1이 있습니다.

파일1

6개 열은 "-exec cp" 명령을 사용하여 표시하기 전에 6개의 서로 다른 호스트에서 가져옵니다. 이것은 단지 참고용입니다.

이제 file1의 첫 번째 행으로 추가하려는 6개의 호스트 이름(file2) 목록이 있습니다.

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현재 파일의 줄 번호입니다. 두 파일은 첫 번째 파일을 읽는 동안에만 동일합니다. 끝에 printf "%s ",$0; next없는 현재 줄을 인쇄하고 다음 \n줄로 건너뜁니다. 이는 헤더가 인쇄된 후에 FNR==1{print ""}를 추가하는 것이며 "이 줄 인쇄"의 약어 입니다 .\n1;awk

답변2

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

관련 정보