awk
백분율 숫자(후행 "%" 포함)를 구문 분석하고 특정 백분율을 초과하는지 확인해야 합니다 .
일반적인 구문 분석에서는 후행 문자를 무시합니다. 예를 들면 다음과 같습니다.
% echo "99%" | awk '{print ($1 + 0)}'
99
물론 e
및 숫자로 구성된 문자열의 경우는 제외됩니다.
echo "99e4" | awk '{print ($1 + 0)}'
990000
이 동작은 안정적이고 다른 s에도 동일합니까 awk
, 아니면 명시적으로 제거하는 것이 권장됩니까 %
?
답변1
예, 이는 AWK 구현 전체에서 안정적인 동작입니다. 에 기록되어 있어요GNU AWK 매뉴얼다음과 같이:
문자열의 숫자 접두사를 숫자(
"2.5"
2.5,"1e3"
1,000,"25fix"
25)로 해석하여 문자열을 숫자로 변환합니다. 유효한 숫자로 해석될 수 없는 문자열은 0으로 변환됩니다.
또한 비록 더 장황하기는 하지만 문서화하고 있습니다.POSIX 사양에서awk
.