GNU/Linux >> Tutoriels Linux >  >> Linux

Supprimer un caractère spécifique en utilisant awk ou sed

Utilisez la substitution de sed :sed 's/"//g'

s/X/Y/ remplace X par Y.

g signifie que toutes les occurrences doivent être remplacées, pas seulement la première.


En utilisant juste awk, vous pourriez faire (j'ai aussi raccourci une partie de votre tuyauterie):

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

Je ne peux pas le vérifier pour vous car je ne connais pas votre saisie exacte, mais ce qui suit fonctionne :

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

Voir aussi cette question sur la suppression des guillemets simples.


tr peut être plus concis pour supprimer des caractères que sed ou awk , en particulier lorsque vous souhaitez supprimer plusieurs caractères différents d'une chaîne.

Suppression des guillemets :

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

Suppression de différents types de parenthèses :

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

-d signifie "supprimer".


Linux
  1. Remplacer un mot ou un nombre dans une phrase inférieure à 8 en utilisant Awk ou Sed ?

  2. Envelopper le premier caractère d'une chaîne à l'aide de Sed ?

  3. Utiliser sed pour supprimer un bloc de texte

  4. sed joindre des lignes ensemble

  5. sed - comment faire des groupes regex en utilisant sed

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

Comment supprimer des lignes vides dans des fichiers à l'aide de Grep, Sed et Awk

Supprimer les lignes vides à l'aide de sed

Comment supprimer un fichier sans utiliser rm ?

Utilisation d'AWK pour sélectionner des lignes avec une valeur spécifique dans une colonne spécifique

Utilisation de sed pour remplacer entre un modèle spécifique