파일 1
Group Country Lang
IT USA ENG
파일_2
EMPID STOREID
1001 1400
1002 1401
1003 1401
내가 사용한다면
paste -d'\t' File_1 File_2
알겠어요
Group^ICountry^ILang^IEMPID^ISTOREID$
IT^IUSA^IENG^I1001^I1400$
^I1002^I1401$
^I1003^I1401$
내가 이런 것을 얻으려고 할 때
Group Country Lang EMPID STOREID
IT USA ENG 1001 1400
IT USA ENG 1002 1401
IT USA ENG 1003 1401
제안해주세요
답변1
$ awk -v OFS='\t' 'NR==FNR{a[FNR==1]=$0; next} {print a[FNR==1], $0}' file1 file2
Group Country Lang EMPID STOREID
IT USA ENG 1001 1400
IT USA ENG 1002 1401
IT USA ENG 1003 1401
위의 내용은 "파일의 첫 번째 줄입니다"( ) 비교 결과 1 또는 0을 사용하여 배열의 색인을 생성하므로 FNR==1
파일 1의 첫 번째 줄은 파일 2와 연결되고 파일 2의 다른 모든 줄은 다음과 연결됩니다. 파일 1 인덱스 0의 두 번째 줄. 어떤 awk에서도 같은 방식으로 동작합니다.
답변2
awk
이 작업 에 사용할 수 있습니다 .
awk '
FNR == NR {buf[NR] = $0; next}
{print (FNR==1 ? buf[1] : buf[2]) "\t" $0}
' file1 file2
첫 번째 파일( )을 구문 분석할 때 헤더와 줄을 저장 FNR==NR
하고 두 번째 파일의 각 줄과 함께 적절한 접두사를 인쇄합니다.
산출:
Group Country Lang EMPID STOREID
IT USA ENG 1001 1400
IT USA ENG 1002 1401
IT USA ENG 1003 1401
답변3
GNU awk를 사용하여 다음 줄을 시도해 보세요.
$ awk 'FNR==NR {a[NR]=$0;nrow=FNR;next} NR==nrow+1 {print a[1],$0;next} {print a[2],$0}' data1 data2
Group Country Lang EMPID STOREID
IT USA ENG 1001 1400
IT USA ENG 1002 1401
IT USA ENG 1003 1401
그리고:
$ cat data1
Group Country Lang
IT USA ENG
$ cat data2
EMPID STOREID
1001 1400
1002 1401
1003 1401