awkは数値を解析するときに常に末尾の文字を削除しますか?

awkは数値を解析するときに常に末尾の文字を削除しますか?

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、1,000、25 )として解釈して、文字列を数値に変換します。有効な数値として解釈できない文字列はゼロに変換されます。"1e3""25fix"

また、もっと冗長ではありますが、文書化しています。POSIX仕様ではawk

おすすめ記事