7

中括弧を使用して固定桁数を一致させようとしていますawkが、結果が得られません。

# This outputs nothing
echo "123" | awk '/^[0-9]{3}$/ {print $1;}' 

# This outputs 123
echo "123" | awk '/^[0-9]+$/ {print $1;}' 

中括弧を使用するために何か特別なことをする必要がありますか?

4

1 に答える 1

10

Mac OS X awk(BSD awk)は、次の最初のコマンドで動作します。

$ echo "123" | /usr/bin/awk '/^[0-9]{3}$/ {print $1;}' 
123
$

GNUはしませんawk。バックスラッシュを追加してもGNUは役に立ちませんawk。オプションを使用すると、使用--re-intervalも同様になります--posix

$ echo "123" | /usr/gnu/bin/awk --re-interval '/^[0-9]{3}$/ {print $1;}' 
123
$ echo "123" | /usr/gnu/bin/awk --posix '/^[0-9]{3}$/ {print $1;}' 
123
$

mawk( 1996年の1.3.3がどこから来たのかはわかりませんが、おそらくawkあなたのマシン用に更新されたバージョンを入手する時が来たでしょう。)

于 2013-03-23T18:40:26.867 に答える