Outils pour utilisateurs

Outils du site


informatique:txt

Manipulation de texte

vim

On trouve d'autres éléments sur la page dédiée à vim.

Une liste → une ligne

Situation : on dispose d'une liste de chaînes de caractères, ou après chaque chaîne il y a un retour à la ligne. Mais on voudrait obtenir cette liste en une seule ligne, par exemple en séparant chaque chaîne par une virgule (typiquement une liste de noms ou de choses).

un nom
un deuxième nom
une chose
une dernière chose

Avec vim, on peut utiliser la commande suivante :

 :%s/\n/, /gc

Le \n indique le retour chariot et le gc permet de faire le changement globalement, en demandant à chaque occurrence.

À la fin de la liste, on se retrouve avec une virgule et un espace, mais c'est vite supprimé.

Les virgules en fin d'élément de liste en espace insécable

Situation, dans un document ``markdown`` :

* un élément de liste,
* un autre élément de liste,
* un dernier élément de liste.

La commande suivante :

 %s/,\n/<\&nbsp;>\r/gc

permet d'obtenir ce qui suit :

* un élément de liste<&nbsp>;
* un autre élément de liste<&nbsp>;
* un dernier élément de liste.

Éditer verticalement en mode visuel

  1. ``CTRL+v`` puis sélectionner la zone.
  2. la touche ``c``, et taper le texte de remplacement
  3. ``ESC`` pour sortir du mode visuel en appliquant le changement

Perl

L'option -p ou -n ajoute une boucle à la commande -e.

Par exemple :

 perl -ne 's/^(\S.*?)/\n$1/g' file

Cette commande change toutes les lignes ne commençant pas par une espace (\S), par une ligne vide (\n) avant la ligne trouvée ($1).

sed

Éditeur en ligne de commande très pratique pour la manipulation de fichier. Voir par exemple une modification de dump.sql.

Supprimer la ou les premières lignes

Supprimer la dernier ligne

sed -i '$d' <filename>

source : http://sed.sourceforge.net/sed1line_fr.html

Rechercher

Une chaîne dans un ensemble de fichiers

informatique/txt.txt · Dernière modification: 2018/07/29 09:08 (modification externe)