Comment supprimer des lignes d'un fichier
Résolu
stephbret56
Messages postés
195
Statut
Membre
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J’aimerai à partir de la commande sed supprimer des lignes avec les caractères AAAAAAAAAAAAAAAAAAAAAAAA la suppression ne doit ce faire qu'à partir de la 3ème ligne du fichier et jusqu'à la fin.
Le fcichier avant modif:
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
Le fichier après modif:
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
Merci pour votre aide
J’aimerai à partir de la commande sed supprimer des lignes avec les caractères AAAAAAAAAAAAAAAAAAAAAAAA la suppression ne doit ce faire qu'à partir de la 3ème ligne du fichier et jusqu'à la fin.
Le fcichier avant modif:
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
Le fichier après modif:
AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
123456789
123456789
DGFDFGFGR
FDSFGSGGF
DSDSFFDFF
Merci pour votre aide
Configuration: AIX unix
16 réponses
-
-
Salut,
Essaie plutôt :sed '3,$ {/^AA*/d}' fichier;-))
-
- Et que ça marche surtout ;-))
[tmpfs]$ cat fichier AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF [tmpfs]$ sed -e '3,/AAAAAAAAAAAAAAAAAAAAAAAA /d' fichier AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA [tmpfs]$ sed '3,$ {/^AA*/d}' fichier AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF [tmpfs]$;-))
-
-
salut,
en plus compact :
[redfox@mandriva Desktop]$ cat prog.sed /^$/d [redfox@mandriva Desktop]$ [redfox@mandriva Desktop]$ sed -f prog.sed sedfile > sedfile2 | sed '3,$ {/^AA*/d}' sedfile2 AAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF [redfox@mandriva Desktop]$ -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
plus court ?
[redfox@mandriva Desktop]$ cat prog.sed /^$/d 3,$ {/^AA*/d} [redfox@mandriva Desktop]$ [redfox@mandriva Desktop]$ sed -f prog.sed sedfile AAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF 123456789 123456789 DGFDFGFGR FDSFGSGGF DSDSFFDFF [redfox@mandriva Desktop]$
-
Bonjour à toutes et tous,
Merci pour vos solutions je vais essayer ce matin je vous tiens au courant.
Merci encore à toutes et tous -
Il m'est pas possible de passer la commande sed 3,$ {/^AA*/d} j'ai à chaque fois le message suivant:
sed : commande incohérente : 3,$ {/^AA*/d} -
Essaye comme ça alors :
sed '1,3!{/^AA*/d}' -
Hélas ce n'est pas mieux
sed '1,3!{/^AA*/d}' fichier
sed : commande incohérente : 1,3!{/^AA*/d} -
-
-
Bon dans un 1er temps essaye ça :
sed -n '1,3p' fichier
et si ça t'affiche bien que les 3 premières lignes essaie alors :sed -n -e '1,3p' -e '/^AA*/!p' fichier
-
-
Oui mais le résultat n'est pas tout à fait celui que j'attends je pense faire autrement
Je vais modifier toutes les lignes qui correspondent au motif AAAAAAAAAAAAAAA après la ligne 6 jusqu'à la fin de mon fichier par les caractères suivants XXXXXXXXXXXXXXXXXXXXXX puis je vais faire le delete des lignes qui sont égale à XXXXXXXXXXXXXXXX et la ca marche. pas simple mais le résultat est ok.
Merci encore pout l'aide au faite j'ai laissé un post sur le shutdown tu as répondu merci mais à ta connaissance il n'y a pas de moyen de répéter le sutdown tous les jours à partir de la commande sutdown il me semblait pourtant que la manipe était possible???
Donc la seule façon de faire est d’utiliser le cron pas d’autre possibilité ???-
Pour le shutdown voir la réponse de Brunomarc, en fait c'est un compromis entre le fait que la commande shutdown possède en effet une option de programmation (heure), mais similaire à la commande "at" c'est à dire programmable qu'une fois donc à initialiser tous les jours dans un fichier lu au démarrage du PC, et la commande cron qui automatise une tâche indéfiniment si l'on veut.
Honnêtement la seconde solution (cron) me semble quand même la plus appropriée ;-))
-
-
Oui j’adopte la seconde solution donc je vais adapter par rapport au cron éventuellement tu n'aurais pas un exemple de cron pour automatiser le boot
Merci beaucoup bonne soirée A+ -
Linux - Ordonnancement des taches
Automatiser des tâches avec init et cron