%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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이상.