#1 Le 26/10/2011, à 12:44
- fanchois
[RESOLU]sed: supprimer la derniere ligne d'une liste de fichier
Bonjour a tous,
J'ai une liste de fichier (>1500) dont je voudrais supprimer la derniere ligne en conservant les mêmes noms de fichiers,
avec cette commande je peux enlever la derniere ligne d'un fichier, mais ça m'oblige a changer le nom du dit fichier...
sed '$d' mon_fic1 > mon_fic2
Y aurait-il un balèse du sed qui pourrait m'aider à faire ça svp?
cordialement,
Dernière modification par fanchois (Le 26/10/2011, à 14:46)
Hors ligne
#2 Le 26/10/2011, à 12:48
- Bousky
Re : [RESOLU]sed: supprimer la derniere ligne d'une liste de fichier
Pour faire une modification sur place, il faut utiliser l'option « -i » (c.f. « man sed »). Si tu veux le faire sur plusieurs fichier, met sed dans une boucle for.
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#3 Le 26/10/2011, à 12:50
- pingouinux
Re : [RESOLU]sed: supprimer la derniere ligne d'une liste de fichier
Bonjour,
sed a l'option -i pour modifier le fichier donné en entrée, mais c'est à manipuler avec précaution.
man sed
Hors ligne
#4 Le 26/10/2011, à 13:52
- Yannou90
Re : [RESOLU]sed: supprimer la derniere ligne d'une liste de fichier
Bonjour
!/bin/bash
for i in $@
do
sed -i '$d' "$i"
if [[ "$?" == "1" ]]
then
exit 1
fi
done
exit 0
Un tout petit script tout bidon , lance le avec comme argument l'ensemble de tes fichiers et pour chacuns d'eux la derniere ligne est écrasé
Si c'est tout bon passe le sujet en resolu
A plus ...
Hors ligne
#5 Le 26/10/2011, à 14:18
- AnsuzPeorth
Re : [RESOLU]sed: supprimer la derniere ligne d'une liste de fichier
Bjr,
si tous les fichiers sont dans le meme dossier:
sed -i '$d' /home/dossier/*
Sinon, d'après le man, il y a une option pour traiter plusieurs fichiers, -s
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#6 Le 26/10/2011, à 14:19
- pingouinux
Re : [RESOLU]sed: supprimer la derniere ligne d'une liste de fichier
Je viens de faire un test, même ceci semble marcher :
sed -i '$d' liste_des_fichiers
Ajouté : il y a des rapides...
Dernière modification par pingouinux (Le 26/10/2011, à 14:21)
Hors ligne
#7 Le 26/10/2011, à 14:39
- fanchois
Re : [RESOLU]sed: supprimer la derniere ligne d'une liste de fichier
oui merci a tous, finalement sans boucles ça marche très bien
(tous les fichiers étaient dans le meme dossier)
cette commande a très bien fonctionnée:
sed '$d' -i mes_fic*
Merci a vous et que la force soit avec vous
Hors ligne