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

Entferne ein bestimmtes Zeichen mit awk oder sed

Verwenden Sie die Substitution von sed:sed 's/"//g'

s/X/Y/ ersetzt X durch Y.

g bedeutet, dass alle Vorkommen ersetzt werden sollen, nicht nur das erste.


Mit nur awk könnten Sie Folgendes tun (ich habe auch einige Ihrer Rohrleitungen gekürzt):

strings -a libAddressDoctor5.so | awk '/EngineVersion/ { if(NR==2) { gsub("\"",""); print $2 } }'

Ich kann es nicht für Sie überprüfen, weil ich Ihre genaue Eingabe nicht kenne, aber Folgendes funktioniert:

echo "Blah EngineVersion=\"123\"" | awk '/EngineVersion/ { gsub("\"",""); print $2 }'

Siehe auch diese Frage zum Entfernen von einfachen Anführungszeichen.


tr kann zum Entfernen von Zeichen prägnanter sein als sed oder awk , insbesondere wenn Sie mehrere verschiedene Zeichen aus einer Zeichenfolge entfernen möchten.

Doppelte Anführungszeichen entfernen:

echo '"Hi"' | tr -d \"
# Prints Hi without quotes

Verschiedene Arten von Klammern entfernen:

echo '[{Hi}]' | tr -d {}[]
# Prints Hi without brackets

-d steht für "löschen".


Linux
  1. Mehrzeiliger Musterabgleich mit Sed, Awk oder Grep?

  2. Ersetzen Sie ein Wort oder eine Zahl in einem Satz, der kleiner als 8 ist, mit Awk oder Sed?

  3. Erstes Zeichen einer Zeichenfolge mit Sed umbrechen?

  4. Großschreibung des ersten Buchstabens von Wörtern mit SED

  5. sed Linien zusammenfügen

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

So löschen Sie leere Zeilen in Dateien mit Grep, Sed und Awk

So entfernen Sie \r-Zeichen mit sed

Verwenden von grep vs. awk

Verwenden von AWK zum Auswählen von Zeilen mit einem bestimmten Wert in einer bestimmten Spalte

Verwenden von sed zum Ersetzen zwischen einem bestimmten Muster