Bash Script 에서 문자열 변수 조작

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
이 글은 카테고리: Tip & Tech에 포함되어 있으며 태그: , , , , , , (이)가 사용되었습니다. 고유주소를 북마크하세요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다