J'ai un fichier avec une liste de phrases
bananas,an oranges,an
J'exécute cat file.txt | xargs -I% sh -c "grep -Eio '(an)' >> output.txt"
Ce que je n'arrive pas à comprendre, c'est que je veux que la sortie contienne le ligne d'origine, par exemple:
apples banananas oranges
Comment puis-je préfixer la sortie de grep pour inclure également la valeur qui y est envoyée?
3 Réponses :
Cela devrait être une tâche pour awk
, pourriez-vous essayer de suivre.
awk '/an/{print $0",an"}' Input_file
Cela cherchera la chaîne an
dans tout lignes de Input_file et ajoutez-y un
également.
Solution avec sed
:
sed '/an/s/$/,an/' intput_file
Ceci trouve les lignes qui correspondent au modèle / an /
, et ajoute , un
à la fin de l'espace du motif $
.
Utilisez awk au lieu de grep
:
banananas,an oranges,an
Output:
$ awk -v s="an" ' # search string BEGIN { OFS="," # separating comma } match($0,s) { # when there is a match print $0,substr($0,RSTART,RLENGTH) # output }' file
Pourriez-vous s'il vous plaît me faire savoir si ma réponse vous aide ici.