Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
script sh lire et supprimer dans un fichier
Envoyé par: seboost

Bonjour, je voudrais savoir comment faire un script shell qui parcour un fichier passé en paramétre contenant des dizaines de lignes et qui supprime les lignes contenant une chaine de caractère passé elle aussi en paramétre.
Si quelqu'un a une piste ca serait cool.
Merci d'avance pour votre aide.

Poste le Thursday 7 July 2005 15:48:37
Répondre     Citer    
Re: script sh lire et supprimer dans un fichier

Le plus dur est fait ici :

i=0
# on cree un tableau avec les arguements $0 $1  ...
liste_arg=( $@ )
filename=${@:${#@}:1}
# On supprime le dernier argument car c'est le nom du fichier 
unset liste_arg[$((${#@}-1))]
for arg in ${liste_arg[@]}
do
liste_arg[$i]=" -e '/${liste_arg[$i]}/d' "
let i=i+1
done
echo sed  ${liste_arg[@]} $filename

Il y a peut etre plus simple ?

--
Brugmans Frédéric

[www.brugmans.net]
[triathlon.sport-challenge.be]

Poste le Thursday 7 July 2005 18:32:43
Répondre     Citer    
Re: script sh lire et supprimer dans un fichier
Envoyé par: Sve@r

#!/bin/sh
# le nom du fichier est l'argument n° 1
fic=$1

# Le texte à supprimer est l'argument n° 2
text=$2

# Extraction et suppression
grep -v "$text" $fic >/tmp/result
mv /tmp/result $fic

L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Thursday 7 July 2005 19:59:41
Répondre     Citer    
Re: script sh lire et supprimer dans un fichier

de fait, j'ai prévu le coup pour plusieurs chaine de caractères :-)) donc on peut faire plus simple (!)

--
Brugmans Frédéric

[www.brugmans.net]
[triathlon.sport-challenge.be]

Poste le Thursday 7 July 2005 20:13:49
Répondre     Citer    
Re: script sh lire et supprimer dans un fichier
Envoyé par: Sve@r

Citation
Brugmans Frédéric
de fait, j'ai prévu le coup pour plusieurs chaine
de caractères donc on peut faire plus simple

No soucy ^^D-*

#!/bin/sh
# le nom du fichier est l'argument n° 1
fic=$1

# On le supprime de la liste des arguments
shift

# Le texte à supprimer est dans tous les arguments restants
for text in $*
do
_____# Extraction et suppression
_____grep -v "$text" $fic >/tmp/result
_____mv /tmp/result $fic
done

yawning smiley)];-)

L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Thursday 7 July 2005 22:45:55
Répondre     Citer    
Re: script sh lire et supprimer dans un fichier
Envoyé par: tg(y)

When you don't have walls, you don't need Windows...

Poste le Thursday 7 July 2005 22:52:52
Répondre     Citer    
Re: script sh lire et supprimer dans un fichier

Citation
Sve@r
#!/bin/sh
# le nom du fichier est l'argument n° 1
fic=$1

# On le supprime de la liste des arguments
shift

# Le texte à supprimer est dans tous les arguments
restants
for text in $*
do
_____# Extraction et suppression
_____grep -v "$text" $fic >/tmp/result
_____mv /tmp/result $fic
done

C'est plus simple. O-uu-O pourtant Je préfère ma solution qui ne nécesite qu'un seul passage dans le fichier ]:-O

--
Brugmans Frédéric

[www.brugmans.net]
[triathlon.sport-challenge.be]

Poste le Thursday 7 July 2005 23:05:14
Répondre     Citer    
Re: script sh lire et supprimer dans un fichier
Envoyé par: Sve@r

Citation
Brugmans Frédéric
C'est plus simple. pourtant Je préfère ma
solution qui ne nécesite qu'un seul passage dans
le fichier

--
Brugmans Frédéric
Tout travail mérite salaire :

Exact... malheureusement je ne connais pas le perl ^^D-*


L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Friday 8 July 2005 15:17:20
Répondre     Citer    
Re: script sh lire et supprimer dans un fichier

c'est pas du perl ^o^ c'est que du bon bash ^^D-*

--
Brugmans Frédéric

[www.brugmans.net]
[triathlon.sport-challenge.be]

Poste le Friday 8 July 2005 16:23:58
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
script sh lire et supprimer dans un fichier
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons