GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ersetzen Sie Leerzeichen mit Unterstrichen über BASH

$ a="hello world"
$ echo ${a// /_}
hello_world

Laut bash(1):

${parameter/pattern/string}

Mustersubstitution. Das Muster wird erweitert, um ein Muster zu erzeugen, genau wie bei der Pfadnamenerweiterung. Der Parameter wird erweitert und die längste Übereinstimmung von Muster mit seinem Wert wird durch eine Zeichenfolge ersetzt. Wenn Muster mit / beginnt, werden alle Übereinstimmungen von Muster ersetzt
mit Schnur. Normalerweise wird nur das erste Streichholz ersetzt. Wenn das Muster mit # beginnt, muss es am Anfang des erweiterten Parameterwerts übereinstimmen. Wenn das Muster mit % beginnt, muss es am Ende mit dem erweiterten Wert des Parameters übereinstimmen. Wenn string null ist, werden Musterübereinstimmungen gelöscht und das folgende Muster kann ausgelassen werden. Wenn der Parameter @ oder * ist, wird die Substitutionsoperation der Reihe nach auf jeden Positionsparameter angewendet, und die Erweiterung ist die resultierende Liste. Wenn Parameter eine Array-Variable ist, die mit @ oder * indiziert ist, wird die Substitutionsoperation der Reihe nach auf jedes Mitglied des Arrays angewendet, und die Erweiterung ist die resultierende Liste.


Sie könnten Folgendes versuchen:

str="${str// /_}"

Linux
  1. Bash -c mit Positionsparametern?

  2. Ersetzen Sie Linien, die einem Muster entsprechen, durch Linien aus einer anderen Datei in der richtigen Reihenfolge?

  3. Newline durch Nul ersetzen?

  4. Warum speichert Bash keine Befehle, die mit Leerzeichen beginnen?

  5. So ersetzen Sie Leerzeichen in Dateinamen mit einem Bash-Skript

Ersetzen Sie unter Linux du durch Staub

Was ist Git Bash? Arbeiten mit Git Bash-Befehlen

So ersetzen Sie Leerzeichen in Dateinamen durch Unterstriche in der Linux-Shell

Ersetzen einer Teilzeichenfolge durch eine andere Zeichenfolge in Bash

Ersetzen Sie gitolite3-Benutzer durch git

sed ersetzt alle Tabulatoren und Leerzeichen durch ein einzelnes Leerzeichen