String-Ersetzungen: alle Vorkommen


11

Eine einfache Frage, aber ich kann die Antwort nicht finden. die zsh dokumentation überwältigt mich :-(

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

$ z thethethe
THEthethe

...

Wie kann ich alle "the" durch "THE" ersetzen lassen, nicht nur das erste Mal? Mit zsh sind es die einfachsten Dinge, für die es am schwierigsten zu sein scheint, Beispiele zu finden.

Antworten:



6

Dies sollte den Job machen:

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

3

Daher musste es einfach sein:

echo ${1//the/THE}

... der doppelte Schrägstrich macht es und Sie können nicht mit ": s" herumalbern.

Übrigens möchte ich mich bei den 'StackExchange'-Sites für das Vorhandensein bedanken. Von allen Millionen Orten, an denen man eine Frage stellen könnte, sind diese bei weitem die besten - man bekommt nicht nur fast immer Antworten, sondern diese Antworten sind ausnahmslos von höchster Qualität.


1

// funktioniert perfekt, wenn Sie nur versuchen, ein bestimmtes Wort durch Großbuchstaben zu ersetzen, während der Rest unberührt bleibt. Wenn Sie versuchen, alles in Großbuchstaben umzuwandeln, können Sie ": u" für die Variable verwenden

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

Sie können überprüfen, welche Modifikatoren im Handbuch zur Erweiterung und Ersetzung von zsh verfügbar sind

man zshexpn
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.