문자열 값 변경

MySprtlty·2022년 7월 10일
0

Bash Shell Script

목록 보기
7/11
post-thumbnail

🏷️문자열 값을 변경하는 확장자

📌개념

  • 변수의 값이 문자열일 때, 패턴을 통해 문자열을 변경하도록 도와주는 확장자가 존재한다.
  • 다음은 확장자들을 정리한 것이다.

📌확장자

#과 %

확장자설명
${변수#패턴}문자열에서 지정한 패턴과 앞에서부터 처음으로 일치하는 부분의 앞쪽 문자열을 지운다.
${변수##패턴}문자열에서 지정한 패턴과 앞에서부터 마지막으로 일치하는 부분의 앞쪽 문자열을 지운다.
${변수%패턴}문자열에서 지정한 패턴과 뒤에서부터 처음으로 일치하는 부분의 뒷쪽 문자열을 지운다.
${변수%%패턴}문자열에서 지정한 패턴과 뒤에서부터 마지막으로 일치하는 부분의 뒷쪽 문자열을 지운다.
  • #전방 탐색을 의미하고, %후방탐색을 의미한다.
  • 키보드에서 #$을 기준으로 앞쪽에 위치하고, %은 뒷쪽에 위치한다고 암기하면 된다.
  • ##%%처럼 #, %를 두 번 연속 사용하면, 마지막으로 일치하는 부분을 찾는다.
  • 문자열 앞을 제거하는 #계열의 경우, 모든 문자열을 의미하는 와일드 카드인 *을 패턴 앞에 붙여줘야 한다.
  • 이와 반대로, 문자열 뒷쪽을 제거하는 %계열의 경우, *를 패턴 뒤에 붙여줘야 한다.
  • 실습에 사용할 문자열은 aabbcc ccbbaa다.
$ TEST="aabbcc ccbbaa"
$ echo ${TEST#*bb}
cc ccbbaa
$ echo ${TEST##*bb}
aa
$ echo ${TEST%bb*}
aabbcc cc
$ echo ${TEST%%bb*}
aa

문자열의 길이

확장자설명
${#변수}문자열의 길이를 리턴한다.
  • 🖇️cf) #은 일반적으로 number을 의미한다.
$ TEST="aabbcc ccbbaa"
$ echo ${#TEST}
13

문자열 교체

확장자설명
${변수/pattern/new}문자열에서 pattern과 앞에서부터 처음으로 일치하는 부분을 new로 교체한다.
${변수/pattern}/new가 비어있으면, 앞에서부터 처음으로 일치하는 부분을 제거한다.
${변수//pattern/new}문자열에서 pattern과 일치하는 부분을 모두 new로 교체한다.
${변수//pattern}/new가 비어있으면, 일치하는 부분을 모두 제거한다.
${변수/#pattern/new}문자열에서 시작 문자열이 pattern과 일치하는 경우, new로 교체한다.
${변수/%pattern/new}문자열에서 마지막 문자열이 pattern과 일치하는 경우, new로 교체한다.
  • 여기서도 #%는 전방과 후방을 의미한다.
  • //는 문자열 전체에서 패턴과 일치하는 문자열을 교체한다.
$ TEST="aabbcc ccbbaa"
$ echo ${TEST/bb/ff}
aaffcc ccbbaa
$ echo ${TEST/bb}
aacc ccbbaa
$ echo ${TEST//bb/ff}
aaffcc ccffaa
$ echo ${TEST//bb}
aacc ccaa
$ echo ${TEST/#aa/ff}
ffbbcc ccbbaa
$ echo ${TEST/%aa/ff}
aabbcc ccbbff
profile
2Co 4:7

0개의 댓글