동일한 코드로 생성된 두 개의 파일 bla.tsv
(FS= \t
)과 blo.tsv
(FS= ) 이 있습니다 .\t
bla.tsv
:
id hub klos
3 2 bis
2 5
4 2 bis
5 2
8 3
7 2 bis
blo.tsv
:
id hub klos
3 2
2 5 jus
4 2
5 2
8 3 jus
7 2
klos
이 두 열을 병합하여 새 파일을 얻고 싶습니다 .
id hub klos
3 2 bis
2 5 jus
4 2 bis
5 2
8 3 jus
7 2 bis
정확한:
파일의 나머지 부분은 모두 동일하며
klos
파일 간에 열만 변경됩니다.이것은 47개의 열이 있는 실제 파일의 하위 샘플입니다.
행과 열에 관한 한 완전히 동일한 파일입니다.
klos 열의 경우 첫 번째 파일에 쓰기가 있으면 다른 파일에서 같은 행에 쓰기가 불가능합니다.
병합하는 방법을 온라인에서 검색해 보았지만 두 개가 아닌 하나의 파일 예만 찾았습니다. 무엇을 해야할지 아시나요? 감사해요
답변1
모든 Unix 시스템의 모든 쉘에서 awk를 사용하십시오.
$ awk 'BEGIN{FS=OFS="\t"} NR==FNR{klos[NR]=$3; next} $3==""{$3=klos[FNR]} 1' blo.tsv bla.tsv
id hub klos
3 2 bis
2 5 jus
4 2 bis
5 2
8 3 jus
7 2 bis