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

sed mit wörtlicher Zeichenfolge - keine Eingabedatei

Funktioniert wie gewünscht:

echo "A,B,C" | sed s/,/\',\'/g

Meine Version mit Variablen in einem Bash-Skript:

Suchen Sie alle Backslashes und ersetzen Sie sie durch Schrägstriche:

input="This has a backslash \\"

output=$(echo "$input" | sed 's,\\,/,g')

echo "$output"

Sie haben einen Konflikt mit einfachen Anführungszeichen, also verwenden Sie:

 echo "A,B,C" | sed "s/,/','/g"

Wenn Sie Bash verwenden, können Sie dies auch tun (<<< ist ein here-string ):

sed "s/,/','/g" <<< "A,B,C"

aber nicht

sed "s/,/','/g"  "A,B,C"

weil sed erwartet Datei(en) als Argument(e)

BEARBEITEN :

wenn Sie ksh oder andere verwenden:

echo string | sed ...

Linux
  1. Arbeiten mit Eingabeausgabe und Fehlerumleitung in Linux

  2. Ergänzung mit „sed“?

  3. Linux – Gnu Parallel Pair Argument mit Dateieingabeargumenten?

  4. Schwanzausgabe mit Sed einfärben?

  5. Echotext mit neuer Zeile in Bash

Echo-Befehl in Linux mit Beispielen

Ersetzen von Zeichenfolgen in Bash

Linux-WC-Befehl mit Beispielen

Bearbeiten von Text mit sed und grep

Wie Echo in Datei

Unix Sed Tutorial:Mehrzeilige Dateioperation mit 6 praktischen Beispielen