シェルで文字列をインターセプトする方法はたくさんありますが、
${expression} には合計 9 つの使用方法があります。
${parameter:-word}
${parameter:=word}
${parameter:?word}
${parameter:+word}
上記の4種類はデフォルト値の置き換えに使用できます。
${#parameter}
上記のメソッドで文字列の長さを取得できます。
${parameter%word} 後方からの単語のインターセプトを最小限に抑えます
${parameter%%word} 後方からの単語のインターセプトを最大化します
${parameter#word} 前方からの単語のインターセプトを最小限に抑えます
${parameter## word}は単語をできるだけ前からインターセプトします
文字列をインターセプトするには上記の4つのメソッドが使用されます。
4 つの使用法を使用すると、文字列をインターセプトするために Cut コマンドを使用する必要がなくなります
最初の使用法は 4 つの状況に分類でき、以下で 1 つずつ紹介します。
1. # 演算子を使用します。目的は、左側から最初に出現した部分文字列、つまり左側の文字を削除し、右側の文字を保持することです。使用法は #*substr です。例:
str='http://www.yourdomain.com/cut-string.html'
echo ${str#*//}
結果は www です。ドメイン名.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.yourdomain.com/cut-string.html' www.あなたのドメイン名.com、つまり、最初の「/」とその右側までのすべての文字を削除します
4. %% 演算子を使用します。目的は、右から最後に出現した部分文字列、つまりその右の文字を削除し、左の文字を保持することです。使用法は %%substr* です。例:
str='http://www.yourdomain.com/cut-string.html'
echo ${str%%/*}
結果は http です。 //www.your Domain name.com、つまり、右側から最後の「/」までの文字と右側のすべての文字を削除します。2 番目のタイプも 4 つのタイプに分けられ、次のように紹介されます。
1. 開始文字と文字数は次のとおりです: start:len、例: str='http://www.yourdomain.com/cut-string.html'echo ${var:0: 5} 0 は左側の最初の文字の始まりを表し、5 は文字の合計数を表します。 結果は次のようになります: http:2。左の文字から最後まで、使用法は次のようになります。例: str='http://www.your domain name.com/cut-string。 html'echo ${var:7}7は左から8番目の文字から始まることを意味します結果は次のようになります: www.yourdomain.com/cut-string.html3. ? 文字の開始と文字数、使用法: 0-start:len、例: str='http://www.yourdomain.com/cut-string.html'echo ${str: 0- 15:10} ここで、0-6 は右から 6 文字目から開始することを意味し、10 は文字数を意味します。 結果は、cut-string4. 右側の文字から最後まで、使用法: 0-start、例: str='http://www.your domain name.com/ Cut- string.html'echo ${str:0-4} ここで、0 ~ 6 は右から 6 文字目から開始することを意味し、10 は文字数を意味します。 結果は次のようになります: html注: (左側の最初の文字は 0 で表され、右側の最初の文字は 0-1 で表されます)