Rechercher : dans
Par :

Supprimer des lignes vides dans 1 fichier txt

Dernière réponse le 11 sep 2009 à 17:12:02 Rom1, le 24 avr 2005 à 13:44:39 
 Signaler ce message aux modérateurs

Salut les gens !!

Voilà, j'ai un fichier texte qui à de nombreuses ligne vides que j'aimerai bien supprimé. Quelle commande serait selon vous adéquate à cette situation ??

De plus, j'aimerai bien rajouté un même numéro à la fin de chaque ligne, ex :

jsdfj djfdjf 8
jdjfj daeradf 8
hgag gsdok, 8

Que puis-je faire ??

Un grand merci à ceux qui répondront !

Meilleures réponses pour « Supprimer des lignes vides dans 1 fichier txt » dans :
Sed - Trucs et astuces VoirSubstitution Affichage Suppression Espace et tabulation Ligne vide Intervalle régulier Divers Joindre des lignes Affichage insensible à la casse Substitution Substituer "foo" par "bar" à chaque ligne Seulement la 1ère...
Fichier TXT VoirFormat TXT Un fichier TXT est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Pour ouvrir ou modifier un tel fichier, il suffit d'utiliser le bloc-notes ou un éditeur de texte traditionnel.

1

asevere, le 24 avr 2005 à 13:57:43
  • +2

Salut,

Les methode ne manquent pas, la commande sed me semble appropriée :)

Selon la version, tu pourra même te passer de fichier temporaire pour faire ça. (-i)

Suppression des lignes vide:

sed '/^$/d' test >test.tmp
mv test.tmp test
ou
sed -i '/^$/d' test
(d) efface la ligne correspondant au pattern(/^$/)
^ représente le début de ligne
$ représente la fin de ligne
^$ représente donc une ligne vide.

Pour ajouter un chiffre à la fin de chaque ligne:
sed 's/\(.*\)/\1 ton_chiffre/' test >test.tmp
mv test.tmp test
ou
sed -i 's/\(.*\)/\1 ton_chiffre/' test
\1 représente ce qui se trouve entre la premiere paire de parenthéses.
tu substitues (s) la ligne(.*) par la ligne (\1) plus ton chiffre.

Tu peux ensuite cumuler les deux:
sed -e '/^$/d' -e 's/\(.*\)/\1 ton_chiffre/' test >test.tmp
ou
sed -i -e '/^$/d' -e 's/\(.*\)/\1 ton_chiffre/' test
Voili voilou :)

++ Une belette, un lapin !?
C'est pas normal ! :p

Répondre à asevere

2

Rom1, le 24 avr 2005 à 14:25:51

Woua.... ça m'a l'air bien balèse tout ça ;) bon, je test ça et te tiens o courant

Merci en tout cas !!

Répondre à Rom1

3

Rom1, le 24 avr 2005 à 15:49:12

Cool, la commande permettant l'ajout d'un nombre à chaque fin de ligne marche du feu de dieux, par contre, celle pour supprimer les lignes vides ne me renvois aucun message d'erreur mais ne fonctionne pas, c'est bizarre, ça m'a l'air cohérent pourtant...

Répondre à Rom1

4

asevere, le 24 avr 2005 à 16:24:34
  • +1

Re :)

Alors dans ce cas, c'est peut-être que tes lignes ne sont pas vides,
pour t'en assurer, un simple

egrep "^$" tonfichier | wc -l
Te répondras trés vite. (recherche des ligne vide, et comptage) si le réultat est zero, plusieures pistes a suivre:
-fichier au format dos
-espace(s)
-tabulation(s)

etc. Une belette, un lapin !?
C'est pas normal ! :p

Répondre à asevere

5

Rom1, le 24 avr 2005 à 22:36:19

Quelle perspicacité dit donc.... cette commande m'a effectivement retourné 0, il y avait surement des espaces dans ces fameuses lignes vides.

Un grand merci en tout cas !!

Répondre à Rom1

7

leburgeois8, le 21 sep 2008 à 21:22:12

Bonjour à tous
j'ai lu les précédents posts et ils sont très bien , mais j'ai un soucis .

Au fait je cherche comment ajouter une ligne dans un fichier (chose deja resolue) mais le problème c'est de faire la recherche dans ce fichier et de pour voir recuperer cette ligne pour la supprimer au moment voulue.

je m'explique, on suppose que j'ai une liste de personnes avec leurs identifiants et leurs numeros de telephones dans mon fichier et donc ces personnes souscrivent à un service pour un delai bien precis.Lorsque la periode de souscrpition arrive à la fin , j'ai lance un update qui va dans le fichier et recherche les identifiants de ces personnes concernées et supprime les differentes lignes corresponadntes aux identifiants de ces personnes avec leurs numeros de telephones.

merci d'avance!!

Répondre à leburgeois8

8

asevere, le 22 sep 2008 à 10:59:02

Bonjour,

Dans le post 1, tu dois avoir la réponse (ou en tout cas, tout les éléments pour)

Ca serait bien de mettre un exemple du fichier en question.

L'identifiant tu le connais et tu veux supprimer les lignes qui correspondent ?
Oubien faut-il que tu retrouve un identifiant en fonction d'une date, et qu'en suite tu supprimes ?

Dans l'exemple du fichier essayes de mettre un maximum de cas:
Tout les types de lignes existant, des enregistrement a supprimer, des a conserver, et surtout, mets des numéros factices!!!

Si possible a partir de l'exemple, montre nous le fichier telle qu'il devrait-être après modifications :)

A plus
Une belette, un lapin !?
C'est pas normal!

Répondre à asevere

10

apren, le 11 sep 2009 à 16:38:39

Bonjour,
merci pour ces infos,
moi je voudrai ajouter une ligne de texte à la fin de mon fichier en ligne de commande.

Merci pour votre aide

Répondre à apren

11

jipicy, le 11 sep 2009 à 16:42:42

Salut,

echo "blablabla" >> fichier

$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

12

apren, le 11 sep 2009 à 16:49:16

Salut,

Merci bcp ;)

Répondre à apren

13

apren, le 11 sep 2009 à 17:06:54

Re salut,
Encore moi :s
Je suis désolé mais j'ai un autre soucis, je sais pas comment on peut modifier une ligne entiére en commande (dos)

Merci d'avance

Répondre à apren

14

jipicy, le 11 sep 2009 à 17:09:54

Merci de voir ça dans le forum adéquat alors ;-\
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

15

 apren, le 11 sep 2009 à 17:12:02

D accord ;) thks

Répondre à apren
Collection CommentÇaMarche.net