cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu

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

ᦿ


ℹ 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog