Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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,

smile

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 wink

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 smile

Hors ligne