GNU/Linux >> Tutoriels Linux >  >> Linux

Comment obtenir uniquement les noms de la commande find sans chemin

Utilisez find trunk/messages/ -name "*.po" -exec basename {} .po \;

Exemple et explications :

Créez des fichiers de test :

$ touch test1.po  
$ touch test2.po  
$ find . -name "*.po" -print
./test1.po  
./test2.po

Ok, les fichiers sont trouvés, y compris le chemin.

Pour chaque résultat, exécutez basename , et supprimez la partie .po du nom

$ find . -name "*.po" -exec basename \{} .po \;  
test1  
test2

Vous pouvez utiliser -execdir paramètre qui imprimerait le fichier sans chemin, par exemple :

find . -name "*.po" -execdir echo {} ';'

Fichiers sans extensions :

find . -name "*.txt" -execdir basename {} .po ';'

Voir :Pourquoi la commande GNU find -execdir se comporte-t-elle différemment de BSD find ?


Basé sur une commande que j'ai trouvée ici :http://www.unixcl.com/2009/08/remove-path-from-find-result-in-bash.html

Vous pouvez le faire en utilisant sed (qui s'est exécuté plus rapidement pour moi que le basename approche):

find trunk/messages/ -name "*.po" | sed 's!.*/!!' | sed 's!.po!!'

Linux
  1. Trouver uniquement la destination du lien symbolique ?

  2. Comment exécuter la commande "find" sur le répertoire en cours uniquement et non sur les sous-répertoires

  3. Comment exclure un répertoire dans find . commande

  4. Commande Linux :Comment "trouver" uniquement des fichiers texte ?

  5. Comment connaître la version de Bluez à partir de la ligne de commande ?

Comment trouver une adresse IP publique à partir de la ligne de commande sous Linux

Comment trouver le nombre de cœurs de processeur à partir de la ligne de commande sous Linux

Comment rechercher des fichiers à partir de la ligne de commande Linux

Comment obtenir le nom de fichier à partir du chemin complet sous Linux

Comment obtenir l'URL du fichier Dropbox à partir de la ligne de commande ?

trouver la commande du PID