Ceci est une ancienne révision du document !
On trouve d'autres éléments sur la page dédiée à vim.
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 ligne, on se retrouve avec une virgule et un espace, mais c'est vite supprimé.
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/<\ >\r/gc
permet d'obtenir ce qui suit :
* un élément de liste< >; * un autre élément de liste< >; * un dernier élément de liste.
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
).
Éditeur en ligne de commande très pratique pour la manipulation de fichier. Voir par exemple une modification de dump.sql
.
sed -i '1,4d' <filename>
source : https://stackoverflow.com/questions/2652338/how-do-i-delete-the-first-line-in-a-file
sed -i '$d' <filename>