1.2.3 를 숫자별로 구분할수 있나요?

xoduddk123의 이미지

안녕하세요.

버전관리에 대해서 알아보고있습니다.

텍스트파일에

VERSION=1.0.1

이라고 들어가잇다고하면

1.0.1을 각각 명령어를 통해서 숫자구분할수 있나요 ? ? ?

VERSION=$(sed -n s/"VERSION="//p version.txt) 를 통해서 1.0.1 이라는 숫자는 뽑아내는것 까진 해보았는데 1 , 0 , 1 이렇게 각각 구분을 어떻게 할수있는지 잘 모르겠습니다.

도와주세요 ㅠ

hernian의 이미지

strtok 이라는 함수가 특정 문자를 기준으로 나눠 줍니다.

나눠서 atoi 함수로 숫자를 받아오면 될거 같네요

xoduddk123의 이미지

C언어 함수를 이용안하고 쉘스크립트로 구분을 하려하는데 불가능할까요 ??

xoduddk123의 이미지

echo $VERSION | cut -d'.' -f1

이런식으로 하니 해결이되네요 ㅎㅎ

익명 사용자의 이미지

하려고하는 일을 string을 tokenize한다라고 합니다.
사용하는 shell에 따라, 예를 들어 bash의 경우
bash string tokenizer 로 검색하면 많이 찾을 수 있습니다.

bash 의 경우 이렇게 해도 됩니다.

IFS='.' read -a a <<< $VERSION
echo ${a[0]}
echo ${a[1]}
echo ${a[2]}

ymir의 이미지

array 로..

$ VERSION=1.0.1
$ V=(${VERSION//./ })
$ echo ${V[0]}-${V[1]}-${V[2]}
1-0-1

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』