https://www.snoopybox.co.kr/1811
구분자 (Delimiter / Split) 이용
- ${변수명#삭제문자} : 좌측부터 가장 짧게 매칭되는 패턴 삭제
- ${변수명##삭제문자} : 좌측부터 가장 길게 매칭되는 패턴 삭제
- ${변수명%삭제문자} : 우측부터 가장 짧게 매칭되는 패턴 삭제
- ${변수명%%삭제문자} : 우측부터 가장 길게 매칭되는 패턴 삭제
- 와일드 카드(*, ?) 사용 가능
[root@NETo-c7test01 ~]# AAA="AAABBBCCCBBBDDDAAA" [root@NETo-c7test01 ~]# echo ${AAA#A*B} BBCCCBBBDDDAAA [root@NETo-c7test01 ~]# echo ${AAA##A*B} DDDAAA [root@NETo-c7test01 ~]# echo ${AAA%B*A} AAABBBCCCBB [root@NETo-c7test01 ~]# echo ${AAA%%B*A} AAA
- #*= : 좌측부터 시작해 맨 처음으로 찾은 =까지의 모든 문자 삭제
- ##*= : 좌측부터 시작해 맨 마지막으로 찾은 =까지의 모든 문자 삭제
- %=* : 우측부터 시작해 맨 처음으로 찾은 =까지의 모든 문자 삭제
- %%=* : 우측부터 시작해 맨 마지막으로 찾은 =까지의 모든 문자 삭제
$ rootfs="debian-jessie-armhf-target+gstreamer" $ echo ${rootfs} debian-jessie-armhf-target+gstreamer $ echo ${rootfs%%+*} debian-jessie-armhf-target $ echo ${rootfs##*+} gstreamer
인덱스 이용
- ${변수명: 시작지점} : 시작지점부터 끝까지 출력
- ${변수명: 시작지점: 갯수(양수)} : 시작지점부터 갯수 만큼 출력
- ${변수명: 시작지점: 끝지점(음수)} : 시작지점부터 끝지점 까지 출력
- 양수 : 좌측부터 또는 갯수
- 음수 : 우측부터, 빈칸(space) 또는 괄호() 삽입 필수
$ rootfs="debian-jessie-armhf-target+gstreamer" $ echo ${rootfs} debian-jessie-armhf-target+gstreamer $ echo ${rootfs: 0} debian-jessie-armhf-target+gstreamer $ echo ${rootfs: 7: 6} jessie $ echo ${rootfs: -9} gstreamer $ echo ${rootfs: 7: -10} jessie-armhf-target
길이
- ${#변수명} : 변수의 길이 출력
$ echo ${#rootfs} 36