다음과 같은 파일이 있습니다.
Heading1,Heading2
value1,value2
또 다른 하나는 다음과 같습니다.
Row1
Row2
두 가지를 어떻게 결합할 수 있습니까?
Row1,Heading1,Heading2
Row2,value1,value2
첫 번째 열 위치에 열을 효과적으로 추가합니까?
답변1
위치 paste
:
paste -d, f2.txt f1.txt
-d,
,
(탭 대신) 구분 기호를 설정하십시오 .
그리고 awk
:
awk 'BEGIN {FS=OFS=","} NR==FNR {a[NR]=$0; next} {print a[FNR], $0}' f2.txt f1.txt
BEGIN {FS=OFS=","}
입력 및 출력 필드 구분 기호를 다음으로 설정합니다.,
NR==FNR {a[NR]=$0; next}
: 첫 번째 파일(f2.txt
)의 경우 레코드 번호를a
해당 레코드 값을 갖는 연관 배열( )의 키로 저장합니다.{print a[FNR], $0}
a
: 두 번째 파일의 경우 접두사가 붙은 레코드 번호 키 값으로 레코드를 인쇄합니다.
예:
% cat f1.txt
Heading1,Heading2
value1,value2
% cat f2.txt
Row1
Row2
% paste -d, f2.txt f1.txt
Row1,Heading1,Heading2
Row2,value1,value2
% awk 'BEGIN {FS=OFS=","} NR==FNR {a[NR]=$0; next} {print a[FNR], $0}' f2.txt f1.txt
Row1,Heading1,Heading2
Row2,value1,value2
답변2
또 다른 짧은 awk
방법.
awk '{getline x<"file1"; print $0","x}' file2
getline x<"file1"
전체 줄 읽기파일 1그리고 그때까지 지속엑스바꾸다.print $0","x
전체 줄을 인쇄파일 2$0
이것은 then을 사용하여x
저장된 라인입니다 .파일 1사이에 쉼표를 사용하세요.