1826 votes

Supprimer une ligne contenant une chaîne spécifique à l’aide de sed

<p>Comment puis-je utiliser sed de supprimer toute la ligne dans un fichier texte qui contient une chaîne spécifique ?</p>

2823voto

SiegeX Points 32614
<p>Supprimez la ligne et d’imprimer le résultat sur la sortie standard :<pre><code></code></pre><p>Pour modifier directement le fichier (avec GNU sed) :</p><pre><code></code></pre></p>

637voto

kurumi Points 10096
<p>Il y a bien d’autres façons de supprimer des lignes avec une chaîne spécifique en plus<code></code><p>awk</p><pre><code></code></pre><p>Ruby(1.9+)</p><pre><code></code></pre><p>Shell(bash3.2+)</p><pre><code></code></pre><p>GNU grep</p><pre><code></code></pre><p>et bien sûr <code></code> (impression de l’inverse est plus rapide que la suppression réelle.)</p><pre><code></code></pre></p>

257voto

slashdottir Points 1143
<p>Vous pouvez utiliser sed pour remplacer les lignes en place dans un fichier, mais il semble être beaucoup plus lent que grepper pour l’inverse dans un second fichier et puis en déplaçant le fichier deuxième rapport à l’original.<p>par exemple</p><pre><code></code></pre><p>ou</p><pre><code></code></pre><p>La première commande prend 3 fois plus de temps sur ma machine quand même.</p></p>

4voto

Kjetil S. Points 1
perl -i    -nle'/regexp/||print' file1 file2 file3
perl -i.bk -nle'/regexp/||print' file1 file2 file3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X