Substring 처리를 하기 위하여 bash 에서는 "#,##,%,%%"의 네 종류의 연산자를 이용하여, 문자열을 조작 하게 된다.


#: 구분자 앞쪽(왼쪽)의 문자열(단어)을 삭제, 문자열 앞쪽에서부터 문자열을 하나씩 삭제하는데 첫번째 구분자 앞까지 삭제

---------------------

#!/bin/bash

x="arm ubuntu linux test string."
echo ${x#* }

---------------------

ubuntu linux test string.

##: 마지막 구분자 앞쪽(왼쪽)의 문자열(단어)을 삭제, 문자열 앞쪽에서부터 문자열을 하나씩 삭제하는데 마지막 구분자 앞까지 삭제

---------------------

#!/bin/bash


x="arm ubuntu linux test string."
echo ${x##* }

---------------------

string.


%: 마지막 구분자 뒤쪽(오른쪽)의 문자열(단어)을 삭제, 문자열 뒤쪽에서부터 문자열을 하나씩 삭제하는데 첫번째 구분자 앞까지 삭제 한다.

---------------------

#!/bin/bash

$x = "arm ubuntu linux test string."
$echo ${x% *}

---------------------

arm ubuntu linux test


만일 문자열 안에 ":"뒤에 문자들만 삭제 하고 싶을 경우,

---------------------

#!/bin/bash


$x=11111:222
echo ${x%:*}

---------------------

11111


%%: 구분자 뒤쪽(오른쪽)의 문자열(단어)을 삭제, 문자열 두쪽에서부터 문자열을 하나씩 삭제하는데 마지막 구분자 앞까지 삭제

---------------------

#!/bin/bash


$x = "arm ubuntu linux test string."
$echo ${x%% *}

---------------------

arm