[Bash/KSH] Ajouter une colonne dans un fichier...

Ajouter une colonne dans un fichier... [Bash/KSH] - Shell/Batch - Programmation

Marsh Posté le 11-02-2009 à 11:50:11    

Bonjour à tous,
 
Je poste pour la première fois depuis plusieurs années... Et j'aurais besoin d'un petit coup de main pour un mini script que je suis en train de pondre.
 
j'ai un fichier ($FIC_LIST) qui contient plusieurs arbo. Une par ligne :
 

Code :
  1. /home/toto
  2. /home/titi
  3. /bin
  4. /etc


 
J'aurais besoin de lire ce fichier ligne à ligne et connaitre la taille (ou autre infos dont j'ai besoin) de chaque arbo. Par exemple :
 

Code :
  1. /home/toto  58620  ./toto  truc1
  2. /home/titi  20321  ./titi  truc2
  3. /bin  1284215  ./bin  truc3
  4. /etc  9854621  ./bidule  truc4


 
 
Pour se faire, j'ai fait :
 

Code :
  1. FIC_LIST=/mon_chemin_qui_va_bien/liste.dug
  2. cat $FIC_LIST | while read ligne
  3. do
  4.  echo "Traitement sur l'arbo $ligne"
  5.                   connaitre la taille de l'arbo en cours de lecture -> du -sk $ligne
  6.                 connaitre le chemin relatif de l'arbo en cours de lecture
  7.                 connaitre un truc sur l'arbo en cours de lecture
  8.                 Ecrire le résultat de ce que j'ai écris plus haut à la fin de chaque ligne en cours de lecture
  9.  ????exemple de trucs que j'ai trouvé  ->  awk '{printf("%-33s `du -sk $ligne`\n", $0)}' < $FIC_LIST
  10.  ????exemple de trucs que j'ai trouvé  ->  sed 's/$/ `truc machin $ligne`/g' $FIC_LIST < $FIC_LIST
  11. done


 
 
Alors j'ai deux problèmes. Executer la/les commandes voulues sur la ligne en cours de lecture
 
Et ajouter le résultat de mes commandes a la fin de chaques lignes comme dans l'exemple plus haut...
Et je galère vraiment beaucoup avec Awk ou Sed. J'arrive pas à savoir lequel il me faut et encore moins comment lui faire faire ce dont j'ai besoin... J'ai trouvé quelques trucs, mais je ne les ai jamais utilisés. Alors pour faire un truc un peu ciblé, je m'y pome vite  :sweat:  
 
Si vous avez des suggestions...
 
Merci  :hello:


Message édité par tanshiro le 11-02-2009 à 11:54:41
Reply

Marsh Posté le 11-02-2009 à 11:50:11   

Reply

Marsh Posté le 11-02-2009 à 15:32:45    

Mais....kékidit ?


---------------
http://macommune.froggysite.com  (38.949 communes, 38.949 forums !)
Reply

Marsh Posté le 11-02-2009 à 19:04:46    

while read line; do
    echo "${line} ---- $(du -sk ${line}) ---- $(ls ${line})"
done < liste.dug


 
 :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 12-02-2009 à 11:17:16    

Nikel chrome,
 
Merci l'ami. J'avais pas tilté que je pouvais rediriger le résultat de ma boucle dans un fichiers ...  :o  
 
( d'ailleur, c'est [done > liste.dug] )
 
 
Encore merci à toi  [:quezako]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed