Gawk에 다른 경우

Gawk에 다른 경우

예가 있습니다.

echo $(seq 9) | awk '{for(i=1;i<=NF;i++) if(i!=5&&i!=6) {printf "%s ",i}else{printf "%s ",""} print ""}'
1 2 3 4   7 8 9 

이 명령에 약어를 사용할 수 있습니까?

echo $(seq 9)| awk '{for(i=1;i<=NF;i++) (i!=5&&i!=6) ? {printf "%s ",i} : {printf "%s ",""} print ""}'

설명해주셔서 감사합니다.

답변1

가능하지만 그런 것은 아닙니다. 삼항 연산자에 표현식을 제공해야 합니다. AWK에서는 printf명령문이므로 를 사용할 수 없는 것처럼 거기에서도 사용할 수 없습니다 {}.

어쨌든 두 개의 명령문이 필요하지 않으므로 printf다음과 같이 작성하는 것이 좋습니다.

seq -s ' ' 9 | awk '{for(i=1;i<=NF;i++) printf "%s ", i!=5&&i!=6 ? i : ""; print ""}'

관련 정보