Comment ajouter un # devant chaque ligne contenant un filtre en BASH?

J'ai besoin d'ajouter un # avant toute ligne contenant le motif "000", par exemple, considérez cet exemple de fichier:

This is a 000 line.
This is 000 yet ano000ther line.
This is still yet another line.

Si je lance la commande, il faut ajouter # à l'avant de tous les fichiers où "000" a été trouvé. Le résultat serait celui-ci:

#This is a 000 line.
#This is 000 yet ano000ther line.
This is still yet another line.

Le mieux que je puisse faire est une boucle while, à l'instar de ce qui semble trop compliqué:

while read -r line
do
    if [[ $line == *000* ]]
    then
          echo "#"$line >> output.txt
    else
          echo $line >> output.txt
    fi
done < file.txt

Comment puis-je ajouter un # à l'avant de la ligne où un modèle est trouvé?

Vous pouvez utiliser la commande sed pour accomplir cela, mais avez-vous envisager de le faire avec un éditeur de texte? Dans vim par exemple cette tâche peut être facilement automatisé par les macros.

OriginalL'auteur Village | 2014-06-15