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

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

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

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
$

또는 stdout에서 오류를 분리할 수 있습니다.

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

관련 정보