셸에서 문자열을 가로채는 방법은 여러 가지가 있습니다.
${expression}을 사용하는 방법은 총 9가지입니다.
${매개변수:-단어}
${매개변수:=단어}
${매개변수:?단어}
${매개변수:+ word}
위 4가지 유형을 사용하여 기본값을 대체할 수 있습니다.
${#parameter}
위 메소드를 사용하면 문자열의 길이를 얻을 수 있습니다.
${parameter%word} 뒤에서 오는 단어의 최소 차단
${parameter%%word} 끝에서 오는 단어의 최대 차단
${parameter#word } 최소 앞 단어
${parameter##word} 가로채기 제한 문자열
가로채기 최대화 위의 4가지 방법을 사용합니다.
네 가지 사용법을 사용하면 문자열을 가로채기 위해 cut 명령을 사용할 필요가 없습니다.
첫 번째는 네 가지 상황으로 나눌 수 있으며, 아래에서 하나씩 소개됩니다.
1. # 연산자를 사용하세요. 목적은 왼쪽에서 처음 나타나는 부분 문자열, 즉 왼쪽의 문자를 삭제하고 오른쪽의 문자를 유지하는 것입니다. 사용법은 #*substr입니다. 예:
str='http://www.yourdomain.com/cut-string.html'
echo ${str#*//}
얻은 결과는 www.yourdomain.com/cut-string.html입니다. 즉, 왼쪽부터 첫 번째 "//"와 그 왼쪽까지 모든 문자를 삭제합니다. 2. ## 연산자를 사용합니다. 목적은 왼쪽에서 마지막 부분 문자열 발생, 즉 왼쪽 문자를 삭제하고 오른쪽 문자를 유지하는 것입니다. 사용법은 ##*substr입니다. 예:
str='http://www.yourdomain.com/cut-string.html'
echo ${str##*/ }
결과는 cut-string.html입니다. 즉, 마지막 "/"와 그 왼쪽의 모든 문자를 삭제합니다.
3 % 연산자를 사용합니다. 목적은 오른쪽에서 처음 나타나는 부분 문자열, 즉 오른쪽의 문자를 삭제하고 왼쪽의 문자를 유지하는 것입니다. 사용법은 %substr*입니다. 예:
str='http://www.yourdomain.com/cut-string.html'
echo ${str%/*}
얻은 결과는 http://www.your domain name.com입니다. 즉, 오른쪽부터 첫 번째 "/"와 그 오른쪽까지 모든 문자를 삭제합니다
4. %% 기호 연산자. 목적은 오른쪽에서 마지막 부분 문자열 발생, 즉 오른쪽 문자를 삭제하고 왼쪽 문자를 유지하는 것입니다. 사용법은 %%substr*입니다. 예:
str='http://www.yourdomain.com/cut-string.html'
echo ${str%%/* }
얻은 결과는 http://www.your domain name.com입니다. 즉 오른쪽부터 마지막 "/" 및 그 오른쪽까지 모든 문자를 삭제합니다.
두 번째 유형 에도 4가지 종류가 있는데 다음과 같이 소개합니다.
1. 왼쪽부터 시작하는 문자와 문자 수는 다음과 같습니다. start:len, 예:
str='http:/ /www.yourdomain.com/cut-string.html'
echo ${var:0:5}
0은 첫 번째 도메인의 시작을 나타냅니다. 왼쪽의 문자, 5는 문자 전체 개수를 나타냅니다.
결과는 다음과 같습니다. http:
2. 왼쪽 문자부터 끝까지 사용법은 다음과 같습니다. start(예:
str='http://) www.yourdomain.com/cut-string.html'
echo ${var:7}
7은 왼쪽의 8번째 문자부터 시작한다는 의미
결과 www.yourdomain.com/cut-string.html
3. 오른쪽에서 시작하는 문자와 문자 수: 0-start:len, 예:
str='http://www.yourdomain.com/cut-string.html'
echo ${str:0-15:10}
0- 6은 6일부터 시작함을 의미합니다. 오른쪽부터 문자, 10은 문자 수를 의미합니다.
결과는 다음과 같습니다. cut-string
4. 올바른 문자부터 끝까지 사용법: 0-start, 예:
str='http: //www.yourdomain.com/cut-string.html'
echo ${str:0-4}
여기서 0-6은 오른쪽에서 6번째 문자를 나타냅니다. 처음에는 10이 문자 수.
결과는 다음과 같습니다. html
참고: (왼쪽 첫 번째 문자는 0으로 표시되고 오른쪽 첫 번째 문자는 0-1로 표시됩니다)