텍스트 파일에서 열 9를 읽고 열 11을 동일한 파일로 바꿉니다.

텍스트 파일에서 열 9를 읽고 열 11을 동일한 파일로 바꿉니다.

"~" 구분 기호를 사용하여 텍스트 파일의 9번째 열을 읽고 테이블에 있는 해당 11번째 열의 데이터를 검색해야 합니다. 현재 NULL 값이 있는 파일의 열 11에 있는 데이터를 바꿔야 합니다.

유닉스에서 이것을 달성하는 방법.

col1~col2~col3~col4~col5~col6~col7~col8~col9~col10~col11~col12~col13

data1~data2~data3~data4~data5~data6~data7~data8~data9~data10~~data12~data13

데이터 data11이 null입니다. 그래서 data9의 해당 값을 가져와 data11을 바꾸고 싶습니다.

감사해요

답변1

열 9만 열 11로 복사하려면 다음과 같은 스크립트를 사용할 수 있습니다.

awk 'BEGIN {FS="~"; OFS="~"}{$11=$9; print}' <filename>

첫 번째 파일에 한 줄만 있으면 다음을 수행할 수 있습니다.

awk -v val=$(awk -F\~ '{print $9}' <filename b>) 'BEGIN {FS="~"; OFS="~"}{$11=val; print}' <filename a>

답변2

완전히 이해했는지 잘 모르겠습니다. 이게 가까워질까요?

awk -F~ '!$11 {$11 = $9}1' OFS="~" file
col1~col2~col3~col4~col5~col6~col7~col8~col9~col10~col11~col12~col13
data1~data2~data3~data4~data5~data6~data7~data8~data9~data10~data9~data12~data13

관련 정보