Lecture fichier texte en bash
Rédigé par Paulo
Aucun commentaire
Classé dans : Bash
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