podstawienia ciągów: wszystkie wystąpienia


13

Proste pytanie, ale nie mogę znaleźć odpowiedzi. dokumentacja Zsh mnie przytłacza :-(

function z ()
{
  echo ${1:s/the/THE}
}

$ z thethethe
THEthethe

...

Jak sprawić, by wszystkie „te” zostały zastąpione przez „THE”, a nie tylko pierwsze wystąpienie? Zsh to najłatwiejsze rzeczy, na które wydaje się najtrudniej znaleźć przykłady.

Odpowiedzi:



6

To powinno wykonać zadanie:

VARIABLE=thethethe
echo ${VARIABLE//the/THE}
THETHETHE

3

Tam musiało być proste:

echo ${1//the/THE}

... robi to podwójny ukośnik i nie możesz wygłupiać się z ": s"

BTW, z pewnością chciałbym podziękować stronom „StackExchange” za istnienie. Ze wszystkich zillionów miejsc, które można zadać, są one zdecydowanie najlepsze - nie tylko prawie zawsze otrzymuje się odpowiedzi, ale zawsze są one najwyższej jakości.


1

// działa idealnie, jeśli próbujesz tylko zamienić określone słowo na wszystkie wielkie litery, pozostawiając resztę nietkniętą. Jeśli próbujesz przekonwertować wszystko na wielkie litery, możesz użyć zmiennej „: u”

SOME_ENV_VALUE='thethethe'
echo $SOME_ENV_VALUE:u // outputs: THETHETHE

Możesz sprawdzić, jakie modyfikatory masz dostępne w instrukcji rozszerzenia i podstawiania zsh

man zshexpn
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.