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이상.

답변2

원하는 정규식은 다음과 같습니다.

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

또한 이 도구를 사용하여 즉시 정규식을 확인할 수 있습니다.https://regex101.com/

관련 정보