grep - correspond à tout mais type de filet donné

5

Je souhaite nettoyer ma bibliothèque de musique afin que je ne reçoive plus de messages de "recherche de plug-in approprié" de Rhythmbox lors de la duplication de certains fichiers WMA-Relic.

J'ai les outils, mais maintenant je veux TROUVER ces fichiers. Je peux obtenir une liste de tous les fichiers de musique avec ls, puis diriger ceci vers grep et capturer tous les mp3 comme ceci:

ls */* | grep \.mp3$

Maintenant, je veux filtrer tous les MP3, comment pourrais-je le faire? Je me suis beaucoup amusé avec ^ et ~ et! mais je ne semblais jamais aller nulle part. Je sais qu'il existe quelques WMA, mais pourquoi devrais-je effectuer une recherche manuelle lorsque j'ai un ordinateur xD?

Quelqu'un peut-il aider?


la source

Réponses:

12

grep -v retournera toutes les lignes qui ne correspondent pas à votre requête

vous pouvez aussi utiliser:

find . ! -name "*.mp3"

faire le tout en une seule commande.

Martin Hilton
la source
2
Pour plus de sécurité, je préférerais utiliser -iname plutôt que -name pour effectuer une correspondance sans distinction de casse. Vous pouvez avoir ou ne pas avoir certains fichiers .MP3 à votre disposition, etc ...
jonathanserafini
4

Jetez un coup d'œil au -vcommutateur sur grep, qui inverse l'appariement.

Ayaz
la source