Ceci est mon troisième poste dans le processus d'apprentissage sed. J'ai une exigence hypothétique. Je veux être en mesure de remplacer le troisième mot de chaque ligne par 'était', où les mots sont délimités par un espace (s).Comment remplacer 3e mot dans une ligne en utilisant sed
bash$ cat words
hi this is me here
hi this is me again
hi this is me yet again
hi this is me
sortie souhaitée:
hi this was me here
hi this was me again
hi this was me yet again
hi this was me
personnes pourraient aider s'il vous plaît comment le faire avec sed. J'ai essayé quelques instructions d'exécution, mais cela n'a pas fonctionné. Merci,
Jagrati
je l'ai trouvé! Je l'ai trouvé!
Bon, j'ai enfin la bonne instruction. Cela fonctionne:
sed -e 's/[^ ]*[^ ]/was/3' words
Cela échouera en raison du nombre impair d'espaces. – Anders
Vrai, quand je l'ai essayé, c'était capable de remplacer dans la première ligne, mais pas dans les derniers. – xyz
sed 's/^ * \ ([^] * \) \ \ + \ ([^] * \) \ + est/\ 1 \ 2 était /' fichier> résultat – Anders