2017-10-03 4 views
2

J'ai environ 300 fichiers texte, chacun d'entre eux contient une liste de domaines. J'essaie de supprimer tous les domaines qui ont 2 périodes en eux. Par exemple, voici une liste:Comment supprimer toutes les lignes avec 2 périodes sur plusieurs fichiers

example.com 
stackoverflow.com 
google.co.uk 
testing.com 
another.something.whatever 
google.com 

Cette liste devrait être ceci:

example.com 
stackoverflow.com 
testing.com 
google.com 

Les domaines google.co.uk et another.something.whatever devraient être supprimés car ils contiennent plus d'une période.

Je sais que je peux grep pour toutes ces lignes comme celle-ci:

grep "\..*\." *.txt 

je ne pouvais trouver des questions précédentes sur la suppression des lignes avec plus d'un symbole dans plusieurs fichiers. Si je l'ai manqué et c'est un doublon, s'il vous plaît faites le moi savoir.

Répondre

1

Et bien sûr, je l'ai compris juste après avoir posté la question.

C'est ce qui a fonctionné pour moi:

sed -i '' '/\..*\./d' *.txt 

J'ai essayé à l'origine cela, mais cela ne fonctionnerait pas sur Mac:

sed -i '/\..*\./d' *.txt 
+0

Ou, vous pouvez inverser votre recherche grep: 'grep -v '[.]. * [.]' ' –