Lecture fichier texte en bash

Rédigé par Paulo Aucun commentaire
Classé dans : Bash Mots clés : bash, fichier


 

Simple mais rapide :

while read ligne;do echo $ligne;done < /etc/hosts
matchpathcon /var/www/html/*|while read fic sel;do echo "$fic,$sel";done
ls -Z /var/www/html/|while read f1 f2 f3 sel fic;do echo "$sel,$fic"; done


Un peu brutal mais fonctionnel  ;)
Lecture "/etc/hosts" en selectionnant uniquement les 2 premiers champs ( ip + host)

while read ip host foo;do echo $ip $host;done < /etc/hosts


Le "read" avec utilisation d'un séparateur (IFS) particulier  (":" par exemple)
Lecture /etc/passwd en ne selectionnant que le user
 

while IFS=: read user foo; do echo $user; done < /etc/passwd


Et pourquoi pas le bon vieux 'awk'  ;)

cat /etc/hosts|awk ' { print "ip="$1 "name="$2 } '


Pour finir, un peu  plus évolué avec gestion du séparateur (IFS):

#! /bin/bash  

while IFS=: read user pass uid gid full home shell  
do  
    echo -e "$full :\n\  
    Pseudo : $user\n\  
    UID :\t $uid\n\  
    GID :\t $gid\n\  
    Home :\t $home\n\  
    Shell :\t $shell\n\n"  
done < /etc/passwd

 

Les commentaires sont fermés.