J'ai une situation où je veux remplacer une chaîne particulière dans de nombreux fichiers
Remplacez une chaîne AAA par une autre chaîne BBB mais il y a beaucoup de chaînes commençant par AAA ou se terminant par AAA, et je veux remplacer un seul à la ligne 34 et garder les autres intacts.
Est-il possible de spécifier par numéro de ligne, sur tous les fichiers cette chaîne est exactement sur la 34ème ligne.
Vous pouvez spécifier le numéro de ligne dans sed ou NR (numéro d'enregistrement) dans awk.
awk 'NR==34 { sub("AAA", "BBB") }'
ou utilisez FNR (enregistrement de numéro de fichier) si vous souhaitez spécifier plusieurs fichiers sur la ligne de commande.
awk 'FNR==34 { sub("AAA", "BBB") }'
ou
sed '34s/AAA/BBB/'
faire un remplacement sur place avec sed
sed -i '34s/AAA/BBB/' file_name