쉘에서는 다른 스크립트 언어에서 다루는 것처럼 아주 많은 문자열을 조작할 수 있는 기능을 제공합니다.


문자열의 길이(length) 구하기

        vStr="abcdefghijk"
        echo ${#vStr}

문자열 조각(substring) 구하기
용법 : ${string:position}  -> $string의 $position부터의 문자열을 추출
          ${string:position:length} -> $string의 $position부터 $length만큼의 문자열을 추출

         vStr="123abc!@"
         echo ${vStr:3} -> "abc!@"
         echo ${vStr:3:3} -> "abc"

문자열 삭제(remove)하기
용법 : ${string#substring} -> $string의 앞 부분에서부터 가장 짧게 일치하는 $substring을 삭제
          ${string##substring} -> $string의 앞 부분에서부터 가장 길게 일치하는 $substring을 삭제
          ${string%substring} -> $string의 뒷 부분에서부터 가장 짧게 일치하는 $substring을 삭제
          ${string%%substring} -> $string의 뒷 부분에서부터 가장 길게 일치하는 $substring을 삭제

        vStr="123abc!@123456abc"
        echo ${vStr#1} -> "23abc!@123456abc"
        echo ${vStr#1*a} -> "bc!@123456abc" => 1과 a사이에서 가장 짧게 일치되는 부분을 삭제
        echo ${vStr##1*a} -> "bc" => 1과 a사이에서 가장 길게 일치되는 부분을 삭제
        echo ${vStr%a*c} -> "123abc!@123456"
        echo ${vStr%%a*c} -> "123"

문자열 대치(replace)하기
용법 : ${string/substring/replacement} -> 처음 일치하는 $substring을 $replacement로 대치.
          ${string//substring/replacement} -> 일치하는 모든 $substring을 $replacement로 대치.
          ${string/#substring/replacement} -> $substring이 $string의 맨 앞에서 일치하면 $replacement로 대치.
          ${string/%substring/replacement} -> $substring이 $string의 맨 뒤에서 일치하면 $replacement로 대치.

        vStr="123abc!@123456abc"
        echo ${vStr/123/ABC} -> "ABCabc!@123456abc"
        echo ${vStr//123/ABC} -> "ABCabc!@ABC456abc"
        echo ${vStr/#123/ABC} -> "ABCabc!@123456abc"
        echo ${vStr/%abc/ABC} -> "123abc!@123456ABC"


블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,