Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/03/2008, à 20:48

ayag

aide pour un script

bonjour je sais pas si je suis dans le bon endroit, pour avoir une réponse à la question suivante:
je veux faire un script qui est capable d'effacer deux lignes qui se suivent dans un fichier, le paramètre que je reçois c'est le nom de la personne que je dois enlever de mon fichier aussi je dois supprimer la ligne qui la suit, j'ai fait ce bout de code

#!/bin/bash
exist=`ls -l | grep 'nom.txt' | wc -l`
if [ $exist -eq 1 ]
then
        if [ $exist = 1 ]
        then
         read nom<nom.txt
         exist2=`cat lon.txt | grep $nom | wc -l`
                if [ $exist2 = 1 ]
                then
                  rm -Rf $nom 
                 cp lon.txt lon_bkp
                 cat lon_bkp | grep -v $nom> lon.txt #ici j'arrive à effacer la ligne ou existe le nom
                 rm -f lon_bkp
                fi
        fi
fi

merci pour votre aide

Hors ligne

#2 Le 22/03/2008, à 10:04

masterlolo

Re : aide pour un script

ayag a écrit :

effacer deux lignes qui se suivent dans un fichier

la commande "uniq" peut éventuellement t'aider
cat tonfichier.txt | uniq  ---> cela va supprimer les lignes identiques dans ton fichier

Hors ligne

#3 Le 22/03/2008, à 17:33

ayag

Re : aide pour un script

masterlolo a écrit :
ayag a écrit :

effacer deux lignes qui se suivent dans un fichier

la commande "uniq" peut éventuellement t'aider
cat tonfichier.txt | uniq  ---> cela va supprimer les lignes identiques dans ton fichier

merci pour ta suggestion
les informations sur le fichier no sont pas identique: il y a une ligne nom et celle qui la suit c'est le login
alors moi je reçois juste le nom et je doit effacer aussi le login

Hors ligne

#4 Le 22/03/2008, à 19:28

Uggy

Re : aide pour un script

Donne nous lla forme précise du fichier source, ca sera + simple, (il n'y a qu'un mot par ligne ? ou pas .. ? )

$ cat toto
qdqsqsd qsd
qsd qsd qd qsd
qsdq sdqsid qsdq
dqs ql hdqsdqsd
monnom qsdfjksd hfsdj fhsdkjhfsdf
monlogin dehdkqsjh qjkdqs
qsdkj hqksjdhqs

$ grep -A1 monnom toto
monnom qsdfjksd hfsdj fhsdkjhfsdf
monlogin dehdkqsjh qjkdqs
$

Dernière modification par Uggy (Le 22/03/2008, à 19:28)

Hors ligne