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.