쉘에서는 다른 스크립트 언어에서 다루는 것처럼 아주 많은 문자열을 조작할 수 있는 기능을 제공합니다.
문자열의 길이(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"
'IT > shell 위 댄스' 카테고리의 다른 글
쉘에서 정렬(sort)하고 유니크(uniq)한 내용 추출 (0) | 2017.04.05 |
---|---|
쉘에서 문자열 치환하기 (0) | 2017.04.05 |
쉘에서 배열 사용하기 (0) | 2017.04.03 |
디렉토리에서 확장자가 없는 파일 찾기(find, ${#변수명}, ${변수명:n:m}) (0) | 2008.10.07 |
배열 활용 (0) | 2008.02.27 |