Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/08/2013, à 02:47

YOKOKOYO

[RESOLU] supprimer chemin d'acces

Salut a tous,

j'ai un petit probleme (oui, sinon je ne lancerais pas ce topic =P )

Voila, je dois ecrire une ligne de commande qui cherche dans le répertoire courant et dans tous
ses sous-répertoires tous les fichiers dont le nom se termine par ".sh" (sans les
guillemets) et n’affiche que leurs noms, sans le .sh.

Pour le moment j'ai fait

find . -name "*.sh" | sed "s/\.sh//" | cut -d"/" -f2

Ce qui bien entendu ne marche pas des masses....

Je pense aue c'est la partie "cut -d"/" -f2" qui pose probleme.
Je voulais prendre tout ce qui se trouve avant le dernier / du chemin d'acces et le supprimer.... mais bon, ca deconne...

Comment suprimer le chemim d'acces sans un cut ?? J'ai pense au baseband mais je ne trouve rien de concluant,
qu'en pensez vous ??

Si vous avez une idee je suis preneur =P

Dernière modification par YOKOKOYO (Le 14/08/2013, à 16:13)

Hors ligne

#2 Le 14/08/2013, à 04:01

xabilon

Re : [RESOLU] supprimer chemin d'acces

Salut

Ceci devrait t'aider : http://pwet.fr/man/linux/commandes/basename


Pour passer un sujet en résolu : modifiez le premier message et ajoutez [Résolu] au titre.

Hors ligne

#3 Le 14/08/2013, à 04:06

Watael

Re : [RESOLU] supprimer chemin d'acces

salut,

find, c'est bien! mais fouille encore dans son man.
Tu dois pouvoir ne pas utiliser de pipe ( | ).

par contre, «supprimer fichier d'accès», ça ne veut rien dire. sad


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 14/08/2013, à 06:06

nesthib

Re : [RESOLU] supprimer chemin d'acces

python -c 'import os ; print("\n".join(f.strip(".sh") for d in os.walk(".") for f in d[2] if f.endswith(".sh")))' 
while read file ; do echo ${file%.*} ; done < <(find . -iname '*.sh' -printf '%f\n')

et un petit hack foireux pour terminer (sauras-tu trouver la tricherie tongue)

find . -iname '*.sh' -printf '%f\b\b\b   \n'

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#5 Le 14/08/2013, à 06:08

pingouinux

Re : [RESOLU] supprimer chemin d'acces

Bonjour,
Je pense que c'est ça que tu cherches :

find -name "*.sh" -exec basename "{}" .sh \;

Édité : J'arrive en retard, mais c'est encore une autre méthode…

Dernière modification par pingouinux (Le 14/08/2013, à 06:10)

Hors ligne

#6 Le 14/08/2013, à 06:11

nesthib

Re : [RESOLU] supprimer chemin d'acces

C'est la plus simple, mais on peut s'amuser wink

NB. j'ajoute que la solution python est certainement très gourmande en mémoire pour un grand nombre de fichiers ^^

Dernière modification par nesthib (Le 14/08/2013, à 06:14)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#7 Le 14/08/2013, à 10:23

YOKOKOYO

Re : [RESOLU] supprimer chemin d'acces

Merci les gars.
Je vais prendre la solution de pingouinux.

Les autres sont bien aussi mais c'est la plus simple (oui, je suis un peu flemmard). apres le pythom c'est pas encore de mon niveau =P
Et pour mon titre je voulais mettre chemin d'acces mais j'ai du me planter. A 3h du math ca peut se comprendre tongue


edit, je ne sais pas comment mettre en resolu =/

Dernière modification par YOKOKOYO (Le 14/08/2013, à 10:48)

Hors ligne

#8 Le 14/08/2013, à 15:59

nesthib

Re : [RESOLU] supprimer chemin d'acces

Il te suffit de modifier ton premier message, et le titre wink


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne