web-dev-qa-db-fra.com

Comment puis-je supprimer le texte d'une ligne après un certain caractère avec awk

Comment puis-je utiliser AWK pour supprimer tout le texte après un certain caractère ";" qui apparaît sur chaque ligne de mon fichier texte? (J'ai alors besoin de courir pour des boucles sur le texte)

Jenny,Sarah,John;North Dakota

Henry,Frank;Illinois

Aaron,Kathryn,Caitlin,Harris;New York
10
Jenny

Voici une réponse avec sed - car vous ne faites pas vraiment de traitement sur le terrain, AWK est probablement trop excitée.

sed 's/;.*//'
4
Chris Down

Et aussi juste cut ..

cut -d\; -f1 file
4
Scrutinizer

Parfois, vous voudrez peut-être remplacer tous les caractères après un certain mot avec une autre chaîne. Par exemple:

original_string="abc blabla foo bar" Et vous voulez remplacer les mots après BLABLA avec 'Hello World'

echo $original_string | sed -E 's/(.+ blabla) .+/\1 hello world/'
0
Kemin Zhou