un petit peu de shell unix [script] - Programmation
Marsh Posté le 05-03-2002 à 10:58:41
desole mes souvenirs datent aussi de l'iut (5ans) mais ce n'est pas sed qu'il faut utiliser ?
Marsh Posté le 05-03-2002 à 11:03:55
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 !!!
Marsh Posté le 05-03-2002 à 11:04:37
ya 1 solution toute simple :
find . -name core -exec rm \{\} \;
ou
find . -name core | xargs rm
Marsh Posté le 05-03-2002 à 11:11:12
impulse a écrit a écrit : sed, awk, grep ? hihi |
ha ben g encore des bons restes ...
Marsh Posté le 05-03-2002 à 11:29:09
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 {}
\;
Marsh Posté le 05-03-2002 à 12:03:09
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 ). 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.
Marsh Posté le 05-03-2002 à 14:14:20
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...
Marsh Posté le 05-03-2002 à 18:03:44
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]
Marsh Posté le 06-03-2002 à 10:37:42
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 !!!
Marsh Posté le 06-03-2002 à 10:59:41
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é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...
Marsh Posté le 06-03-2002 à 17:10:01
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é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 !!!
Marsh Posté le 06-03-2002 à 17:58:14
gfive a écrit a écrit : Ah ouais, c comme moi avec Perl, alors!! D |
Sauf que moi du perl j'en ai jamais fait !!!
Marsh Posté le 05-03-2002 à 10:56:41
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.
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)