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

  FORUM HardWare.fr
  Programmation

  [script] un petit peu de shell unix

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[script] un petit peu de shell unix

n°107744
darkoli
Le Petit Dinosaure Bleu
Posté le 05-03-2002 à 10:56:41  profilanswer
 

Il y a troi ans pendant mon DUT d'info j'avais fait un petit script qui listait tous les fichiers "core" d'une arborescence pour pouvoir ensuite les effacer. Mais il y'a une chose que j'ai oublié c'est le nom de la commande qui traitait le resultat de "ll".
 
Cette commande permettait de separer les differents element de la ligne pour pouvoir recuperer la taille et le nom de fichier par exemple.
 

Code :
  1. "
  2. total 2246
  3. -rw-------   1 darkoli gb        778560 Mar  4 14:56 core
  4. -rwxr--r--   1 darkoli gb           182 Mar  4 16:39 cpl
  5. -rwxrwxrwx   1 darkoli gb        111844 Mar  4 16:39 toto
  6. -rw-r--r--   1 darkoli gb         88927 Mar  4 16:34 toto.c
  7. -rw-rw-rw-   1 darkoli gb          2112 Mar  4 16:39 toto.mk
  8. -rw-rw-rw-   1 darkoli gb        127484 Mar  4 16:39 toto.o
  9. "


 
en parametre de la commande le lui filais une ligne et si mes souvenirs sont bons elle placait chaque element dans les variables $1.. $n comme si c'etait les parametres du script. (colonne 5 et 9 à recuperer).
 
C'est quoi donc le nom de cette fonction ?(ksh)

mood
Publicité
Posté le 05-03-2002 à 10:56:41  profilanswer
 

n°107745
kayasax
Posté le 05-03-2002 à 10:58:41  profilanswer
 

desole mes souvenirs datent aussi de l'iut (5ans) mais ce n'est pas sed qu'il faut utiliser ?


---------------
All we need is a soul revolution
n°107748
darkoli
Le Petit Dinosaure Bleu
Posté le 05-03-2002 à 11:03:55  profilanswer
 

kayasax a écrit a écrit :

desole mes souvenirs datent aussi de l'iut (5ans) mais ce n'est pas sed qu'il faut utiliser ?  




 
Ben je vais voir mais ca me dit rien du tout !!!

n°107749
krolours1
Posté le 05-03-2002 à 11:04:37  profilanswer
 

ya 1 solution toute simple :  
 
find . -name core -exec rm \{\} \;
 
ou  
 
find . -name core | xargs rm

n°107750
impulse
Posté le 05-03-2002 à 11:06:37  profilanswer
 

sed, awk, grep ?
 
hihi :p

n°107753
kayasax
Posté le 05-03-2002 à 11:11:12  profilanswer
 

impulse a écrit a écrit :

sed, awk, grep ?
 
hihi :p  



 
 :D ha ben g encore des bons restes ... :D


---------------
All we need is a soul revolution
n°107762
gfive
Posté le 05-03-2002 à 11:29:09  profilanswer
 

Le find est de très loin la meileure solution.....
 
Perso, dans mon .bash_aliases, y'a ça :
 
function beurk() {
find ~ ! -type d \( -name ".#*" -o -name "*~" -o -name ".*~" -o -name "#*#" -o -name "*.aux" -o -name "*.toc" -o -name ".saves-*" -o -name ".rhosts" -o -name "core" -o -name ".*.errors" \) -print -exec rm {}  
\;

n°107779
darkoli
Le Petit Dinosaure Bleu
Posté le 05-03-2002 à 12:03:09  profilanswer
 

Oui mais moi je veux pas faire de find !!!
 
J'ai mon script qui parcours l'arborescence, simplement j'aimerais pouvoir indquer la taille totales occupees pr les fichier "core", donc j'avais pense faire un  `ll | grep core` pour chaque repertoire et ensuite recuperer la taille qui est le 5° element. (et non the fifth element  :D). Mais avec cut ca ne marche pas tres bien car s'il y a plusieurs espaces ' ' il considere qu'il y a des champs vides !!!
 
Donc je vais voir avec sed mais si vous aviez les parametres à filer avec cce serait sympa.

n°107824
gfive
Posté le 05-03-2002 à 14:14:20  profilanswer
 

Pourquoi, tu veux pas faire de find??? Ca marche nickel, et sans doute beaucoup plus vite que ton script qui parcourt l'arborescence!!  
 
Bon, sinon, pour calculer la taille d'un fichier, y'a mieux que ll...Y'a du....dont le boulot est de calculer la taille d'un fichier...

n°107936
darkoli
Le Petit Dinosaure Bleu
Posté le 05-03-2002 à 18:03:44  profilanswer
 

gfive a écrit a écrit :

Pourquoi, tu veux pas faire de find??? Ca marche nickel, et sans doute beaucoup plus vite que ton script qui parcourt l'arborescence!!  
 
Bon, sinon, pour calculer la taille d'un fichier, y'a mieux que ll...Y'a du....dont le boulot est de calculer la taille d'un fichier...  




 
Oui c'est aussi une solution !!!
desole mais du -b n'est pas accepté !!!
Donc je vais faire un wc -c core et pis c'est tout (bon c'est violent mais y'a que ca qui marche sur ce shell pourri (ksh) !!!)

 

[jfdsdjhfuetppo]--Message édité par darkoli--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 05-03-2002 à 18:03:44  profilanswer
 

n°108169
darkoli
Le Petit Dinosaure Bleu
Posté le 06-03-2002 à 10:37:42  profilanswer
 

Bon pour separer les elements d'une ligne tres facilement voici une solution simple !!!
 
function separer {
  echo $5
}
 
toto=`separer 1 2       3 4 5 6`
 
echo $toto
 
et dans toto se trouve le 5° element !!!

n°108181
gfive
Posté le 06-03-2002 à 10:59:41  profilanswer
 

darkoli a écrit a écrit :

Bon pour separer les elements d'une ligne tres facilement voici une solution simple !!!
 
function separer {
  echo $5
}
 
toto=`separer 1 2       3 4 5 6`
 
echo $toto
 
et dans toto se trouve le 5° element !!!  




 
Il est fou, lui!! Non mais ça va pas, alors qu'il y a des outils tout faits pour ça! :D
 
Déjà :  
 
toto=`echo $line | awk '{print $5}'`  
 
te fait la même chose...Et ça marche aussi si tes champs sont séparés par autre chose que des espaces : avec des virgules, par exemple :  
 
toto=`echo $line | awk ' BEGIN {FS=","} {print $5}'`
 
Et on doit pouvoir encore faire mieux avec des commandes shell que je connais pas...

n°108436
darkoli
Le Petit Dinosaure Bleu
Posté le 06-03-2002 à 17:10:01  profilanswer
 

gfive a écrit a écrit :

 
 
Il est fou, lui!! Non mais ça va pas, alors qu'il y a des outils tout faits pour ça! :D
 
Déjà :  
 
toto=`echo $line | awk '{print $5}'`  
 
te fait la même chose...Et ça marche aussi si tes champs sont séparés par autre chose que des espaces : avec des virgules, par exemple :  
 
toto=`echo $line | awk ' BEGIN {FS=","} {print $5}'`
 
Et on doit pouvoir encore faire mieux avec des commandes shell que je connais pas...  




 
Je sais qu'on doit pouvoir faire mieux, je l'avais fait il y a trois ans mais je ne m'en souviens plus !!!

n°108444
gfive
Posté le 06-03-2002 à 17:22:54  profilanswer
 

Ah ouais, c comme moi avec Perl, alors!! :D:D

n°108467
darkoli
Le Petit Dinosaure Bleu
Posté le 06-03-2002 à 17:58:14  profilanswer
 

gfive a écrit a écrit :

Ah ouais, c comme moi avec Perl, alors!! :D:D  




 
Sauf que moi du perl j'en ai jamais fait !!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [script] un petit peu de shell unix

 

Sujets relatifs
[Javascript / Apache] petit probleme -> error : exec format errorhelp me please !!!!petit probleme html !!!! code inside
[Apache/Unix] Processus qui boucle[Perl / CGI] passer un array d'un script a un autre ?
[C/unix][Perl][Lex/Yacc][X] Creation d'une communaute Epitech2[PHP] Un petit machin tout simple
[C/Unix] Structure d'un fichier ELF[ PHP ] Des connaisseurs pour améliorer mon premier script ;-)
Caractère de fin de ligne sous Unix ?[C/UNIX] Probleme louche
Plus de sujets relatifs à : [script] un petit peu de shell unix


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