awk 경고 억제

awk 경고 억제

스크립트에서 양식에 대한 경고가 표시됩니다 awk: warning: escape sequence \( treated as plain (. 해당 스크립트의 출력을 사용하여 작업을 수행하고 싶기 때문에 경고가 아닌 결과만 출력하고 싶습니다.

해당 경고를 쉽게 수정할 수 있지만 awk에서 모든 경고를 제거할 수 있는 방법이 있습니까?

답변1

경고 및 오류 메시지는 일반적으로 stderr로 전송되며 의 경우인 것 같습니다. awk따라서 stderr를 /dev/null로 리디렉션하면 다음과 같은 해당 메시지가 표시되지 않습니다.

awk your_options your_file 2>/dev/null

답변2

@garyjohn의 답변에서 제안한 대로 지시할 때의 문제는 당신이 놓치는 것 stderr입니다 ./dev/null모두오류는 표시하지 않으려는 이 경고뿐만 아니라 따라서 잘못되면 더 중요한 것을 놓칠 수 있습니다. 일반적으로 나쁜 생각입니다.절대다른 대안이 없다면 이렇게 하세요. 다행히도 이 경우에는 훨씬 더 나은 대안이 있습니다.

OP 문제에 대한 깨끗한 해결책은 " \\(" 대신 " \("을 사용하는 것입니다. 이것이 바로 awk/gawk가 여러분에게 경고하려고 하는 것입니다. 단지 재미로 징징거리는 것이 아닙니다.

관련 정보