awk gsub 명령의 출력을 파일로 리디렉션

awk gsub 명령의 출력을 파일로 리디렉션

여기 stackexchange에서 쉼표로 구분된 csv 파일의 따옴표 사이에 쉼표를 제거하는 방법에 대한 답변을 찾았습니다(필요한 담당자가 없으므로 댓글을 달 수 없습니다).

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile

출력을 콘솔로 인쇄하는 대신 파일로 리디렉션하려면 어떻게 해야 합니까?

빈 파일이나 오류만 발생하는 '>'를 사용하여 다양한 조합을 시도했습니다. '>>'는 매번 오류를 발생시켰습니다.

답변1

표준 리디렉션을 사용하면 표준 출력에서 ​​작동합니다.

$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile > test.out
$

그래도 화면에 오류가 인쇄됩니다.

그러나 오류 및 표준 출력을 파일에 포함하려면 다음을 실행하십시오.

$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile 2>&1 > test.out
$

또는 표준 출력에서 ​​오류를 분리할 수 있습니다.

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile 2> errors.out 1 > test.out

관련 정보