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

ping a VLAN quick script – script rapide pour pinger un VLAN

This is a quick little shell script to find desktop (or servers) who answer to ping requests on a VLAN.
Voici un petit script pour trouver les postes utilisateurs (ou serveurs) qui répondent au ping sur un VLAN.

#!/bin/ksh
#set -x
A=1
VLAN="192.168.1"
while [[ $A -lt 255 ]];
do
/bin/ping -w 3 -c 2 -q $VLAN.$A >/dev/null  2>&1
RET=$?
[[ "$RET" != "0" ]]&& echo "$VLAN.$A;NG" || echo "$VLAN.$A;OK"
((A=A+1))
done

the output would be like :

le résultat ressemblera à :

192.168.1.1;NG
192.168.1.2;NG
192.168.1.3;OK
192.168.1.4;NG

It only takes a minute to write and 10mn to run.
I imported the output on “OCS Inventory Agent Deployment Tool”, it saved me a lot of time because OCS only scan and install agent on available desktops.

Cela prend seulement 1 minute à écrire et 10mn pour avoir le résultat.
J’ai ensuite importé le résultat dans “OCS Inventory Agent Deployment Tool”, cela m’a permis de gagner du temps car OCS ne scan et install l’agent que sur les postes disponibles.