특정 열의 내용을 awk로 바꾸는 방법은 무엇입니까? 탭으로 구분된 파일

특정 열의 내용을 awk로 바꾸는 방법은 무엇입니까? 탭으로 구분된 파일

비슷한 질문인데 질문에서 다루지 않은 문제에 부딪혔습니다. 특정 열의 내용을 awk로 바꾸는 방법은 무엇입니까?

비슷한 작업을 하고 싶지만 파일이 공백으로 구분되지 않고 탭으로 구분되어 있습니다. 필드 3을 변경하고 싶습니다. 내 파일이 다음과 같다고 가정해 보겠습니다.

NAME\tNUMBER\tID\tSEQ\t...\t...\t... 

필드 3을 AD로 변경하고 싶다고 가정해 보겠습니다.

awk '{$3 = "AD"; print}' infile > outfile

내 출력은

NAME\tNUMBER\tAD SEQ ... ... ... ... ... ...

교체 후 탭이 공백이 됩니다. 파일만 출력할 수 있다고 확신 하지만 필드 구분 기호가 변경되는 tr원인이 무엇인지 알고 싶습니다 .awk

예상 출력:

NAME\tNUMBER\tAD\tSEQ\t...\t...\t...\t

답변1

O출력 F필드 S구분자를 tab으로 설정 해야 합니다 \t.

한 가지 방법은 옵션을 사용하는 것입니다 -v.

awk -vOFS='\t' '{$3 = "AD"; print}' file

awkBEGIN 블록과 같이 내부의 또 다른 가능성은 다음 과 같습니다.

awk 'BEGIN{OFS="\t"}{$3 = "AD"; print}' file

설정하지 않으면 기본적 OFS으로 awk단일 공백이 필드 구분 기호로 사용됩니다.

관련 정보