Sed et expression régulière

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

J'ai un petit souci au niveau de l'utilisation de la commande sed ou plutôt j'ai encore du mal à l'utiliser correctement pour obtenir ce dont j'ai exactement besoin. En fait à partir d'un fichier contenant des lignes de la forme suivante :
15208094 drwx------ 2 osms11 osb2 4096 déc 18 10:40 Rep2

j'aimerais pouvoir récupérer chaque élément séparé par les espaces de manière individuelle, seulement déjà à la deuxième expression je ne vois pas comment dire je veux toutes les lettres de l'alphabet et le '-' ? Voici un début de solution :
sed "s/\([0-9])\([a-z-]\).*/ inode : \1 ; permissions : \2/" lstest


(ltest est pour le fichier contenant toutes les lignes ^^)

D'avance je vous remercie et bonne fêtes !

Jérémy


A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Le plus simple serait d'utiliser awk, beaucoup plus adapté à ce genre d'exercice (à savoir travailler sur des champs) :
$ awk '{ print "inode : ",$1,";"" permission : ",$2 }' plop 
inode : 15208094 ; permission : drwx------


Mais bon si tu tiens vraiment à le faire avec sed :
$ sed 's/\([^ ]*\) \([^ ]*\) .*/Inode : \1 ; Permission : \2/' plop 
Inode : 15208094 ; Permission : drwx------

1
Utilisateur anonyme
 
Un grand merci à toi ! Je n'avais pas cerné le problème de la bonne manière.
0