GNU/Linux >> Tutoriels Linux >  >> Linux

Comment remplacer plusieurs espaces par un onglet

Pour convertir des séquences de plusieurs espaces à un onglet, mais laissez les espaces individuels tels quels :

sed 's/ \+ /\t/g' inputfile > outputfile

Pour faire cela pour un certain nombre de fichiers :

for inputfile in *
do
    sed 's/ \+ /\t/g' "$inputfile" > tmpfile && mv tmpfile "$inputfile"
done

ou

for inputfile in *
do
    sed -i.bak 's/ \+ /\t/g' "$inputfile"
done

ou

find . -type f -exec sed -i.bak 's/ \+ /\t/g' {} \;

Si votre personnage est à plusieurs onglets, vous pouvez également utiliser tr -s :

-s, --squeeze-repeats   replace each input sequence of a repeated character
                        that is listed in SET1 with a single occurrence

Par exemple :

my_file.txt | tr -s " "

Tous les espaces blancs deviendront un.


Vous pouvez utiliser sed pour remplacer un certain nombre d'espaces par une tabulation. :

Exemple pour remplacer un ou plusieurs espaces par une tabulation :

cat spaced-file | sed 's/ \+/\t/g' > tabbed-file

Linux
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Comment utiliser Sed pour remplacer une chaîne multiligne ?

  3. Quelle est la portabilité de /dev/stdin, /dev/stdout et /dev/stderr ?

  4. Tutoriel Unix Sed :comment exécuter plusieurs commandes Sed

  5. Pourquoi sed échoue-t-il avec les caractères internationaux et comment y remédier ?

Comment remplacer un disque dur défaillant dans un RAID logiciel Linux

Comment exécuter plusieurs commandes Linux en une seule commande

Comment fusionner plusieurs fichiers PDF en un seul PDF sous Linux

Comment désactiver Gnome pour créer des documents/vidéo/dans HOME ?

Comment remplacer récursivement les caractères par sed ?

Remplacement SED sur plusieurs lignes