Code Snippets/Shell
부분 문자열 가져오기.
2runXX
2007. 2. 3. 13:07
adadad.afs.1231.qz라는 문자열에서 중간의 1231 을 가져오는 방법.
우선 가장 간단하게 생각할 수 있는 방법.
1. 부분 문자열 가져오기.
11번째 문자부터 4개를 가져오는 코드이다.
빼오려는 문자열의 길이와 위치가 항상 같다면 이 방법이 제일 간단할 듯.
하지만 숫자가 자리수가 바껴서 길이가 달라지면 저런 방법으로는 할 수 없다.
그래서 패턴을 사용했다.
2. 패턴을 사용해서 중간 값 가져오기.
두번째 줄에서 뒤에서부터 처음에 나온 . 이후는 잘라내고,
세번째 줄에서 앞에서부터 마지막에 나온 . 이전을 잘라낸다.
문자열을 잘라내는 다른 방법으로는 IFS(Internal Field Separator) 를 점(.)으로 설정해서,
점(.) 단위로 문자열을 잘라낼 수 있다.
기타. IFS 를 사용해서 반복문을 실행.
위의 예제는 . 단위로 문자열을 잘라서 화면에 뿌려주는 예제이다.
....소스를 어디서 주워온지는 잊어버린지 오래이고;;;
자세한 레퍼런스는 귀찮으니 생략;;;
혹시 심심하면 나중에 추가 할 수도~
그리고, 틀렸거나 더 좋은 방법이 있을 수 있으니 있으면 연락 바람 -_-/
우선 가장 간단하게 생각할 수 있는 방법.
1. 부분 문자열 가져오기.
STR=adadad.afs.1231.qz
STR=${STR:11:4}
STR=${STR:11:4}
11번째 문자부터 4개를 가져오는 코드이다.
빼오려는 문자열의 길이와 위치가 항상 같다면 이 방법이 제일 간단할 듯.
하지만 숫자가 자리수가 바껴서 길이가 달라지면 저런 방법으로는 할 수 없다.
그래서 패턴을 사용했다.
2. 패턴을 사용해서 중간 값 가져오기.
STR=adadad.afs.1231.qz
STR=${STR%.*}
echo ${STR##*.}
STR=${STR%.*}
echo ${STR##*.}
두번째 줄에서 뒤에서부터 처음에 나온 . 이후는 잘라내고,
세번째 줄에서 앞에서부터 마지막에 나온 . 이전을 잘라낸다.
문자열을 잘라내는 다른 방법으로는 IFS(Internal Field Separator) 를 점(.)으로 설정해서,
점(.) 단위로 문자열을 잘라낼 수 있다.
기타. IFS 를 사용해서 반복문을 실행.
STR=adadad.afs.1231.qz
IFS=.
for i in $STR ; do
echo $i
done
IFS=" "
IFS=.
for i in $STR ; do
echo $i
done
IFS=" "
위의 예제는 . 단위로 문자열을 잘라서 화면에 뿌려주는 예제이다.
....소스를 어디서 주워온지는 잊어버린지 오래이고;;;
자세한 레퍼런스는 귀찮으니 생략;;;
혹시 심심하면 나중에 추가 할 수도~
그리고, 틀렸거나 더 좋은 방법이 있을 수 있으니 있으면 연락 바람 -_-/