2017-06-21 2 views
3

Je dispose d'un fichier blacklist:Comment exclure des fichiers blacklistés de ls?

$ cat blacklist 
Iran 
Iraq 
Libya 
Somalia 
Sudan 
Syria 
Yemen 

Comment puis-je exclure les fichiers répertoriés dans ce fichier blacklist de la sortie de ls? J'ai lu les pages man et la chose la plus proche est l'option --ignore qui malheureusement ne lit pas un fichier. J'ai également pensé de canaliser la sortie de ls à grep et en utilisant l'option --invert-match pour ignorer tous les fichiers dans le fichier blacklist mais je ne sais pas comment le faire.

Répondre

6

Si vous devez utiliser ls, vous pouvez le faire:

ls | grep -vFxf blacklist 
  • -v pour inverser la sélection
  • -F pour traiter les lignes de la liste noire de fichiers sous forme de chaînes et non pas des
  • -x pour correspondre la ligne entière
  • -f pour lire à partir de la liste noire des motifs/chaînes correspondant à

Notez que la solution ci-dessus fonctionne dans tous les cas sauf lorsque les noms de fichiers contiennent des retours à la ligne.