août
23
2024
Voici une solution basée sur sed permettant de supprimer les espaces, tabulations redondantes consécutives.
ඏ
Solution basée sur « sed »
La solution consiste à remplacer les espaces, tabulations… consécutifs par un seul espace :
sed -r 's/\s+/ /g'
sed -E 's/\s+/ /g'
Pour garantir la compatibilité POXIS
, vous devez choisi cette solution.
sed --regexp-extended 's/\s+/ /g'
ඏ
Exemple concret
Comment obtenir un affichage « parsable » (analysable par un automate) d’un fichier de configuration comme /etc/fstab
:
cat /etc/fstab
La solution naturelle :
cat /etc/fstab | sed -E -e '/^#/d' -e 's/\s+/ /g' -e '/^ $/d' -e '/^$/d'
Une solution plus compacte :
sed -E -e '/^#/d' -e 's/\s+/ /g' -e '/^ $/d' -e '/^$/d' /etc/fstab
Résumons :
sed
— exécute la commande sed-E
— Active la prise en compte des expressions régulière étendues-e '/^#/d'
— Supprime les lignes commençant par#
-e 's/\s+/ /g'
— Remplace les espaces, tabulations… consécutifs par un espace-e '/^ $/d'
— Supprime les lignes ne contenant qu'un espace-e '/^$/d'
— Supprime les lignes vides/etc/fstab
— Fichier concerner
ඏ
Liens
- Explication de la notion d'Expression régulière sur Wikipédia
- FAQ de sed
ᦿ