붙여넣기: 가장 작은 row-ct 파일의 행 수만 포함하여 한 줄당 행을 병합합니다.

붙여넣기: 가장 작은 row-ct 파일의 행 수만 포함하여 한 줄당 행을 병합합니다.

두 개의 파일이 있다고 가정해 보겠습니다.

// foo
a
b
c
d

// bar
x,y,z
p,d,q

문제는 다음과 같습니다

paste -d ',' foo bar

... 

a,x,y,z
b,p,d,q
c
d

대신에 나는 (어쨌든) 다음을 생성하고 싶습니다:

a,x,y,z
b,p,d,q

그러나 현재 내가 볼 수 있는 유일한 방법은 최소 파일의 줄 수를 확인하고 잘린 파일에 붙여넣기를 실행하는 작은 프로그램을 작성하는 것입니다.

최악의 경우, 빠른 스크립팅과 민첩성을 위해 명령줄을 "단순"하게 유지하기 위해 컴파일된 홈브류 도구를 작성해야 합니다.

기존 도구를 사용하여 이를 수행할 수 있는 방법이 있어야 하는데 방법을 모르겠습니다. 이 보수적인 붙여넣기 작업을 수행할 수 있는 방법이 있습니까?

지금까지 가장 좋은 해결책은 다음과 같습니다.

paste -d ',' foo bar | awk -F ',' '{if(NF > 2){print $0}}'

답변1

노력하다

$ awk -F, 'FNR == NR {T[NR] = $0; next} {$0 = T[FNR] OFS $0} NF == 4' OFS=, file[12]
a,x,y,z
b,p,d,q

관련 정보