Remplacer plusieurs lignes par un seul ";" dans un fichier - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 12-06-2013 à 10:40:39
Une solution simple, c'est si tu es sur que les lignes de drop sont toujours sur une seule ligne.
Si c'est le cas, tu peux filtrer directement le fichier sur les lignes commençant par drop, puis une fois fait, toutes les lignes ne terminant pas par un ; tu en ajoutes un.
En gros :
Code :
|
( ^I = tabulation )
Mais bon, comme dit, il faut que tu soit sur de ton fichier en entrée, si un drop est sur deux lignes c'est foutu.
Si tu n'es pas sur du fichier, à part le parser ligne à ligne, je ne vois pas de solutions
Marsh Posté le 15-06-2013 à 14:29:36
# http://stackoverflow.com/questions [...] ern-in-sed
# sed -e '/begin/,/end/{s/begin/replacement/p;d}'
Code :
|
Code :
|
Code :
|
Marsh Posté le 18-08-2013 à 17:56:31
Salut,
"sed" a la possibilité d'ajouter (a), d'insérer (i) ou de changer (c) du texte juste avec une de ces 3 lettres.
Par contre seule la commande "c" (change) admet une plage d'adresses.
Code :
|
DROP INDEX SwCatDeviceLicenses_Suite ON ampdbuser.SwCatDeviceLicenses; |
Code :
|
DROP INDEX SwCatDeviceLicenses_Suite ON ampdbuser.SwCatDeviceLicenses; |
Marsh Posté le 11-06-2013 à 20:26:54
Bonsoir,
J'ai un fichier qui ressemble à ca:
Je dois bien évidemment supprimer
et le remplacer par
si possible à la ligne d'avant, sinon ca n'est pas important.
J'ai cherché comment faire avec sed, awk mais je ne trouve que des commandes qui vont supprimer "x" lignes après ou qui vont chercher la même lignes sur plusieurs lignes etc...
Je suis quand même tombé sur cette page qui est assez complète mais ne répond pas a mon besoin, et bien d'autres....
Quelqu'un aurait-il une idée?