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以上。