Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2266 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Multimédia

  tester l'extension d'un fichier sous unix

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tester l'extension d'un fichier sous unix

n°108748
fafe
qui peut le moins peut le plus
Posté le 04-06-2002 à 12:33:24  profilanswer
 

:jap:  :jap:  :jap: je ne me rappelle plus de la syntaxe exacte,
il me semble que c'est if test -name $i -eq *.sql
ca marche pas, quelqu'un peut me dire ou est l'erreur ca m'evitera de chercher dans mes cours et tps.
Merci  
 
 :jap:  :jap:


---------------
boulet officiel:goueg
mood
Publicité
Posté le 04-06-2002 à 12:33:24  profilanswer
 

n°108757
minusplus
Posté le 04-06-2002 à 12:44:10  profilanswer
 

moi je ferais :
 

Code :
  1. if test ${i##*.} = "sql"; then do_something; fi

n°108794
fafe
qui peut le moins peut le plus
Posté le 04-06-2002 à 13:22:46  profilanswer
 

minusplus a écrit a écrit :

moi je ferais :
 

Code :
  1. if test ${i##*.} = "sql"; then do_something; fi

 




 
merci ca marche.
 :hello:  :hello:  :hello:  :hello:


---------------
boulet officiel:goueg
n°108800
Poltergeis​t
Posté le 04-06-2002 à 13:29:25  profilanswer
 

minusplus a écrit a écrit :

moi je ferais :
 

Code :
  1. if test ${i##*.} = "sql"; then do_something; fi

 




 
-/+  faut que tu m'expliques le 'test'
 
'comprend rien à l'expression ;)  
 
'i' pour insensible à la casse ?
*.  quelconque avant le .  
mais le '#' ???


---------------
c'est etonnant comme on peut se passer de l'essentiel du moment qu'on a les petits plaisirs de la vie
n°108807
minusplus
Posté le 04-06-2002 à 13:36:09  profilanswer
 

parameter expansion : man bash ! :D  
c super pratik mais personne l'utilise jamais !  

Code :
  1. ${parameter#word}
  2.        ${parameter##word}
  3.               The word is expanded to produce a pattern  just  as
  4.               in  pathname expansion.  If the pattern matches the
  5.               beginning of  the  value  of  parameter,  then  the
  6.               result  of  the  expansion is the expanded value of
  7.               parameter with the shortest matching  pattern  (the
  8.               ``#''  case)  or  the longest matching pattern (the
  9.               ``##'' case) deleted.  If parameter is @ or *,  the
  10.               pattern  removal operation is applied to each posi�
  11.               tional parameter in turn, and the expansion is  the
  12.               resultant  list.  If parameter is an array variable
  13.               subscripted with @ or *, the pattern removal opera�
  14.               tion  is  applied  to  each  member of the array in
  15.               turn, and the expansion is the resultant list.
  16.        ${parameter%word}
  17.        ${parameter%%word}
  18.               The word is expanded to produce a pattern  just  as
  19.               in  pathname  expansion.   If the pattern matches a
  20.               trailing portion of the expanded value  of  parame�
  21.               ter,  then  the  result  of  the  expansion  is the
  22.               expanded  value  of  parameter  with  the  shortest
  23.               matching  pattern  (the  ``%'' case) or the longest
  24.               matching pattern (the  ``%%''  case)  deleted.   If
  25.               parameter  is @ or *, the pattern removal operation
  26.               is applied to each positional  parameter  in  turn,
  27.               and the expansion is the resultant list.  If param�
  28.               eter is an array variable subscripted with @ or  *,
  29.               the  pattern  removal  operation is applied to each
  30.               member of the array in turn, and the  expansion  is
  31.               the resultant list.

n°108809
minusplus
Posté le 04-06-2002 à 13:37:40  profilanswer
 

en français : $(i##*.) renvoie $i auquel on a coupé la plus longue partie (à partir du début) possible correspondant à l'expression "*."

n°108813
Poltergeis​t
Posté le 04-06-2002 à 13:42:38  profilanswer
 

donc faut recuperer $i pour travailler dessus ?


---------------
c'est etonnant comme on peut se passer de l'essentiel du moment qu'on a les petits plaisirs de la vie
n°108814
minusplus
Posté le 04-06-2002 à 13:48:13  profilanswer
 

Poltergeist a écrit a écrit :

donc faut recuperer $i pour travailler dessus ?  




:??: komprend pas...
 
exemple :  

Code :
  1. for i in *
  2. do
  3.   if test ${i##*.} = 'sql'
  4.   then
  5.     do_truc()
  6.   elif test ${i##*.} = 'gnagna'
  7.     do_machin()
  8.   fi
  9. done

n°108817
Poltergeis​t
Posté le 04-06-2002 à 13:53:11  profilanswer
 

minusplus a écrit a écrit :

 
:??: komprend pas...
 
exemple :  

Code :
  1. for i in *
  2. do
  3.   if test ${i##*.} = 'sql'
  4.   then
  5.     do_truc()
  6.   elif test ${i##*.} = 'gnagna'
  7.     do_machin()
  8.   fi
  9. done

 




 
ben texto :  
 
en français : $(i##*.) renvoie $i auquel on a coupé la plus longue partie (à partir du début) possible correspondant à l'expression "*."
 
je cherche surtout à m'affranchir de lourdes expressions regulieres (parce que meme si c'est puissant c'est assez lourd à gérer ;) )


---------------
c'est etonnant comme on peut se passer de l'essentiel du moment qu'on a les petits plaisirs de la vie
n°108820
Poltergeis​t
Posté le 04-06-2002 à 13:57:44  profilanswer
 

bah t'emmerdes pas , je vais potasser dessus ;)


---------------
c'est etonnant comme on peut se passer de l'essentiel du moment qu'on a les petits plaisirs de la vie
mood
Publicité
Posté le 04-06-2002 à 13:57:44  profilanswer
 

n°108826
minusplus
Posté le 04-06-2002 à 14:02:19  profilanswer
 

Poltergeist a écrit a écrit :

 
 
ben texto :  
 
en français : $(i##*.) renvoie $i auquel on a coupé la plus longue partie (à partir du début) possible correspondant à l'expression "*."
 
je cherche surtout à m'affranchir de lourdes expressions regulieres (parce que meme si c'est puissant c'est assez lourd à gérer ;) )  




bash (enfin sh) ne fait pas nativement les regexp à la perl. tout ce qu'il fait c'est du pattern matching sur les noms de fichiers koi (les habituels *, ?, [azer] etc.)
mais bon, sur des pb un peu plus kompliké t vite obligé de passer au perl (au sed au pire)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Multimédia

  tester l'extension d'un fichier sous unix

 

Sujets relatifs
je suis newbie en Unix help me please :)Linux/Unix: RPC
Y'a des pros des scripts unix ?fichier periph /dev/sct0 disparu
Tester des serveurs sous Linux...Impossible de copier-coller un fichier sous konqueror
KK1 a eu l'occasion de tester StarOffice 6 ?Comment décompresser avec la commande tar sous unix
afficher fichier cachéslancer un fichier qui execute une commande shell
Plus de sujets relatifs à : tester l'extension d'un fichier sous unix


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR