예가 있습니다.
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 ""}'