VI : how to delete lines with- Comment supprimer des lignes avec vi

Go to command mode with <ESC> and type :
Allez dans le mode commande avec <ECH> et taper :

dd

to delete one line.
pour supprimer une ligne.

12dd

to delete 12 lines from the current position.
pour supprimer 12 lignes de la position actuelle.

dG

to delete the lines from the current position to the end of the file.
pour supprimer les lignes de la position actuelle jusqu’à la fin du fichier.

:111,222d

to delete from line number 111 to 222 (included).
pour supprimer de la ligne 111 à la ligne 222 (inclus).

:1,$d

to delete all the lines.
pour supprimer toutes les lignes.

Last trick :
Dernière astuce :

:se nu

to print the line numbers on the screen.
pour afficher le numéro des lignes à l’écran.

Using vi to replace strings on multiple files – Utilisation de vi pour remplacer des caractères dans plusieurs fichiers

Here is an example on how massively replace a string with another.

Voici un exemple concret de comment remplacer massivement une chaine de caractères par une autre.

I’m using command line ex editor (vi is the visual clone of ex) and option – (or –s) for none interactive-user feedback.

J’utilise l’éditeur en mode commande ex (vi est un clone visuel de ex)  et l’option – (ou –s) pour ne pas avoir de retour interactif.

Say, for instance, you are migrating you subversion repository from host1 to host 2.

Disons, par exemple, que vous  migrez votre référentiel subversion de host1 vers host2.

The server part is done (see post Migrate A Subversion Repository )

La partie serveur est faite (voir le post Migrer Un Référentiel Subversion)

On each svn client changes have to be made. The “entries” files have to aim to the new repository.

Au niveau des clients svn il faut également modifier les fichiers « entries » pour qu’ils pointent vers le nouveau référentiel.

“Entries” files are everywhere (on every working directory and subdirectories). You will have to change”host1” to “host2” on each file.

Les fichiers “entries” sont dans chaque répertoire de travail et ses sous-répertoires. Il faut changer « host1 » en « host2 » dans chacun des fichiers.

 

The following script finds all the “entries” files (from the current directory), for each file search “host1” strings, if found replace them by ”host2” and save and exit the file.

Le script suivant trouve tous les fichiers “entries” (à partir du répertoire courant), pour chaque fichier cherche les occurrences de « host1 », si trouvés les remplace par « host2 » sauve et quitte le fichier.

1
2
3
4
5
6
7
8
9
find . -name "entries"type f|while read LINE
do
echo "$LINE :"
ex - $LINE <<EOF
%s/host1/host2/g
wq!
EOF
echo OK
done