Sed ET/OU vi

Fermé
Dominique - 6 oct. 2008 à 08:43
 Dominique - 6 oct. 2008 à 10:42
Bonjour,

Si possible avec sed ET/OU vi comment supprimer les lignes d'un fichier connaissant les patern :
1) - un # en début de ligne
2) - "is not set" dans la ligne

Ex :
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
# CONFIG_SATA_AHCI is not set
# CONFIG_SATA_SVW is not set
CONFIG_ATA_PIIX=y
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set

MERCI d'avance !

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
6 oct. 2008 à 08:58
Salut,

J'ai un peu modifié le fichier en entrée pour les cas où la ligne commencerait par un "#" mais ne contiendrait pas "is not set"...
jp@MDK:~/tmpfs ssh$ cat fichier
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_ATA_NONSTANDARD
CONFIG_ATA_ACPI=y
# CONFIG_SATA_AHCI is not set
# CONFIG_SATA_SVW is not set
CONFIG_ATA_PIIX=y
# CONFIG_SATA_MV
# CONFIG_SATA_NV is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE
# CONFIG_SATA_SX4 is not set

jp@MDK:~/tmpfs ssh$ sed '/^#/{/is not set/d}' fichier
# CONFIG_ATA_NONSTANDARD
CONFIG_ATA_ACPI=y
CONFIG_ATA_PIIX=y
# CONFIG_SATA_MV
# CONFIG_SATA_PROMISE

jp@MDK:~/tmpfs ssh$
Pour que les modifications soient appliquées au fichier source, rajoute l'otpion "sed -i.bak '...'" si ta version de sed le permet, sinon redirige la sortie vers un autre fichier.

;-))
0
Tout simplement SUPERBE !

MERCI jipicy,

Visiblement tu t'éclates avec ces outils sed, ed, awk...
Si avoir une réponse de ta part est fort agréable, ce n'est pas LA solution...
Ce serait bien que mon neurone trouve çà tout seul...

As-tu qq liens, de la litérature... concernant ces outils remarquables. J'ai bien "Maîtrise des Expressions régulières" chez O'Reilly, mais il faut se cramponner et quand j'ai un besoin immédiat... jipicy c'est plus rapide !
Souvent ça manque d'exemple, surtout si on en fait pas tous les jours, moi j'arrive mieux à partir d'exemples quitte à faire qq essais... et c'est rigolo car le résultat est parfois surprenant...

Question de gourmandise, et sous vi mon pb est-il soluble ?
Je me souviens de qq commandes du type :
:1,$s/^#/CouCou/
:5,15d

On doit bien pouvoir combiner les deux, non ?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
6 oct. 2008 à 10:35
Re-

Pour sed voir dans la FAQ : http://www.commentcamarche.net/faq/478 sed

Pour vi/vim : http://vim.dindinx.net/traduit/html/usr_toc.txt.php

;-))
0
MERCI jipicy

et en plus en temps réel !

Je mets çà dans mes favoris
0