Unixで変数(修正可能)文字列を確認するには?

Unixで変数(修正可能)文字列を確認するには?

Bash ShellでUnixを使用しており、これが次の形式であることを確認したいと思います。

[0-9*][,[0-9*]*]

したがって、次の文字列が有効です。

  • 141,325,562
  • 65
  • 659,948,8465,9853,2659,156,884,351,0,451,01,10

私のUnixはとても基本的なので、助けてくれてありがとう。

ベストアンサー1

bash一致させるには、zshまたはシェル変数の内容を使用しますksh93

re='^[0-9]+(,[0-9]+)*$'
[[ $string =~ $re ]] && echo matches

POSIX的に:

case $string in
  ("" | *[!,0-9]* | ,* | *, | *,,*) ;;
  (*) echo matches;;
esac

バーンリー:

expr " $string" : ' [0-9]\{1,\}\(,[0-9]\{1,\}\)*$' > /dev/null &&
  echo matches

入力ラインを一致させるには:

grep -xE '[0-9]+(,[0-9]+)*'

私たちは+(またはそれに対応するBRE \{1,\})を使用して一致させます。1またはそれ以上の数。*一致0以上。

おすすめ記事