Comment supprimer toutes les lignes du fichier texte contenant les mots "chat" et "rat"?
command-line
text-processing
PersonX
la source
la source
Réponses:
grep
approchePour créer une copie du fichier sans lignes correspondant à "cat" ou "rat", on peut utiliser
grep
reverse (-v
) et avec l'option de mot entier (-w
).L'option de mot entier s'assure qu'il ne correspond pas
cats
ougrateful
par exemple. La redirection de sortie de votre shell est utilisée (>
) pour l'écrire dans un nouveau fichier. Nous avons besoin de l'-E
option pour activer les expressions régulières étendues pour la(one|other)
syntaxe.sed
approcheAlternativement, pour supprimer les lignes sur place, on peut utiliser
sed -i
:La
\b
limite de mot est définie et l'd
opération supprime la ligne correspondant à l'expression entre les barres obliques.cat
etrat
sont tous deux mis en correspondance avec la(one|other)
syntaxe nous avons apparemment besoin d'échapper avec des barres obliques inverses.Conseil: utilisez
sed
sans-i
opérateur pour tester le résultat de la commande avant de remplacer le fichier.(Basé sur Sed - Supprime une ligne contenant une chaîne spécifique )
la source
Pour tester uniquement dans un terminal, utilisez:
Pour vraiment supprimer ces lignes du fichier, utilisez:
la source
Essayez le vim-way:
la source
Déterminez si vous avez un fichier avec
file_name
et que vous souhaitez rechercher la souris, mais en même temps, quelques lignes de la souris ayant des mots tels quecat
etrat
et vous ne souhaitez pas les voir dans votre sortie, la seule façon de le faire est de -la source
manière de coque portable
Fonctionne dans
/bin/sh
, qui estdash
sur Ubuntu, ainsi queksh
, etbash
. Légèrement gênant que vous deviez écrire plusieurs cas de test pour chaque mot de lacase
déclaration, mais portable. Fonctionne dans les cas où le mot apparaît seul sur la ligne, au début, à la fin de la ligne ou au milieu de la ligne, et ignore où il pourrait faire partie d'un autre mot.Et voici comment cela fonctionne:
la source