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
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:
- Sed et expression régulière
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Avoir du ping expression ✓ - Forum jeux en ligne
- C quoi un ping? ✓ - Forum Réseau
- Expression de recherche - Guide
2 réponses
Salut,
Le plus simple serait d'utiliser awk, beaucoup plus adapté à ce genre d'exercice (à savoir travailler sur des champs) :
Mais bon si tu tiens vraiment à le faire avec sed :
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------