簡単な質問ですが、答えが見つかりません。zshのドキュメントは私を圧倒します:-(
function z ()
{
echo ${1:s/the/THE}
}
$ z thethethe
THEthethe
...
最初の出現だけでなく、すべての「the」を「THE」に置き換えるにはどうすればよいですか?zshでは、例を見つけるのが最も難しいと思われる最も簡単な方法です。
簡単な質問ですが、答えが見つかりません。zshのドキュメントは私を圧倒します:-(
function z ()
{
echo ${1:s/the/THE}
}
$ z thethethe
THEthethe
...
最初の出現だけでなく、すべての「the」を「THE」に置き換えるにはどうすればよいですか?zshでは、例を見つけるのが最も難しいと思われる最も簡単な方法です。
回答:
これは履歴拡張修飾子なので、g
直前に修飾子を追加しs
ます。
echo ${1:gs/the/THE}
または、パラメータ展開構文を使用します。二重のスラッシュはグローバル置換を意味します。この場合、後の部分s//
はワイルドカードパターンですが、履歴拡張置換はリテラル文字列を取ります。
echo ${1//the/THE}
Thereyago、それは単純でなければなりませんでした:
echo ${1//the/THE}
...二重スラッシュがそれを行い、あなたは ":s"で騙すことはできません
ところで、私は既存の「StackExchange」サイトに感謝したいと思います。質問をする可能性のあるすべての数十億の場所の中で、これらは群を抜いて最高です。ほとんどの場合、回答を得るだけでなく、それらの回答は常に最高品質です。
//特定の単語をすべて大文字に置き換え、残りの部分はそのままにしておけば、完璧に機能します すべてを大文字に変換する場合は、変数に「:u」を使用できます
SOME_ENV_VALUE='thethethe'
echo $SOME_ENV_VALUE:u // outputs: THETHETHE
zshの展開と置換のマニュアルで、使用可能な修飾子を確認できます
man zshexpn