파일에 첫 번째 열 추가

파일에 첫 번째 열 추가

다음과 같은 파일이 있습니다.

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사이에 쉼표를 사용하세요.

관련 정보