Sed et expression régulière
Résolu
Utilisateur anonyme
-
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 :
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 :
(ltest est pour le fichier contenant toutes les lignes ^^)
D'avance je vous remercie et bonne fêtes !
Jérémy
--
Vive la Belgique !!
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
--
Vive la Belgique !!
2 réponses
-
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------
-