Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1772 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  supprimer certain retour chariot

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

supprimer certain retour chariot

n°1101474
ptinat
Posté le 30-05-2005 à 11:55:48  profilanswer
 

bonjour,
 
Je souhaiterais savoir comment supprimer dans un fichier text certain retour chariot.
 
ex de fichier à transformer :
0;var1
var2
 
 
var3
 
1;var4;var5
var6
 
 
1;var7 var8
 
et le fichier que je voudrais en sortie :
0;var1 var2 var3
1;var4;var5 var6
1;var7 var8
 
merci d'avance pour votre aide

mood
Publicité
Posté le 30-05-2005 à 11:55:48  profilanswer
 

n°1101522
Elmoricq
Modérateur
Posté le 30-05-2005 à 12:29:14  profilanswer
 

En quoi ? Shell Unix (lequel ?), ou batch ?
 
Dans le premier cas, ce doit être faisable avec awk.


Message édité par Elmoricq le 30-05-2005 à 12:30:23
n°1101540
scuny
Posté le 30-05-2005 à 12:48:20  profilanswer
 

dans le second cas  
voir avec setx.exe (toolkit W2K)

n°1101568
ptinat
Posté le 30-05-2005 à 13:22:27  profilanswer
 

excusez moi, c'est bien avec shell.
 
Pour le commande awk, je vois pas trop comment tu l'utilises. Pourrais tu m'éclairer?

n°1101596
Elmoricq
Modérateur
Posté le 30-05-2005 à 13:41:53  profilanswer
 

ptinat a écrit :

excusez moi, c'est bien avec shell.
 
Pour le commande awk, je vois pas trop comment tu l'utilises. Pourrais tu m'éclairer?


 
 
Tu peux essayer ceci (dans l'exemple ci-dessous, les données sont dans "fic1" ) :

Code :
  1. #!/bin/ksh
  2. awk '
  3.     # Passe une ligne si celle-ci debute par un chiffre
  4.     # et pas la premiere ligne examinee (evite que la
  5.     # toute premiere ligne soit vide)
  6.     # Dans awk, NR = le numero de la ligne courante
  7.     if ( $0 ~ /^[0-9]/ && NR != 1 )
  8.     {
  9.         printf("\n" );
  10.     }
  11.     # Sinon, imprime a la suite, mais seulement si la ligne
  12.     # contient autre chose que des espaces
  13.     if ( $0 ~ /^ *$/ )
  14.     {
  15.         printf("%s ",$0);
  16.     }
  17. }
  18. END { printf("\n" ); }' fic1


 
 
 
En règle générale, "man commande_unix" renvoie toutes les informations nécessaires. ;)


Message édité par Elmoricq le 30-05-2005 à 13:43:46
n°1101618
ptinat
Posté le 30-05-2005 à 14:02:40  profilanswer
 

Je n'arrive pas à faire marcher le programme.
 
ps: j'ai oublié de dire que je ne maitrise pas bien les commandes Shell.

n°1101628
Elmoricq
Modérateur
Posté le 30-05-2005 à 14:07:48  profilanswer
 

Citation :

Je n'arrive pas à faire marcher le programme.


 
Tu n'es pas assez vague, pourrais-tu être moins précis ?
 
Qu'est-ce que tu ne parviens pas à faire ?

n°1101642
ptinat
Posté le 30-05-2005 à 14:13:48  profilanswer
 

Elmoricq a écrit :

Tu n'es pas assez vague, pourrais-tu être moins précis ?
 
Qu'est-ce que tu ne parviens pas à faire ?


 
 
Quand j’exécute le programme, ça saute 3 lignes sur l’écran et je ne sais pas ce qu’il a fait (il n’y a pas de messages d’erreurs)
 
il affiche le résultat où? et si on veut le rediriger dans un fichier, il le définit où?

n°1101667
Elmoricq
Modérateur
Posté le 30-05-2005 à 14:22:16  profilanswer
 

Oui, j'ai fait une erreur de frappe.
 
Remplace la ligne :
 

Code :
  1. if ( $0 ~ /^ *$/ )


(si $0 est une ligne qui n'est remplie que d'espaces... )
 
par :
 

Code :
  1. if ( $0 !~ /^ *$/ )


(si $0 est une ligne qui contient autre chose que des espaces...)


Message édité par Elmoricq le 30-05-2005 à 14:26:18
n°1101708
ptinat
Posté le 30-05-2005 à 14:31:44  profilanswer
 

Il n’y a pas d’espace, mon fichier est exactement comme l’exemple que j’ai donné.
Et le résultat de la commande affiche 3 lignes vides :


mon_répertoire > ./prog1.txt
 
 
 
mon_répertoire >


 
voilà ce que j'obtiens

mood
Publicité
Posté le 30-05-2005 à 14:31:44  profilanswer
 

n°1101709
ptinat
Posté le 30-05-2005 à 14:31:52  profilanswer
 

Il n’y a pas d’espace, mon fichier est exactement comme l’exemple que j’ai donné.
Et le résultat de la commande affiche 3 lignes vides :


mon_répertoire > ./prog1.txt
 
 
 
mon_répertoire >


 
voilà ce que j'obtiens

n°1101716
Elmoricq
Modérateur
Posté le 30-05-2005 à 14:33:22  profilanswer
 

Oui, oui, j'ai édité en catastrophe et posté une correction quand, pris d'un doute, j'ai copié-collé mon exemple pour tenter de reproduire ton comportement, et que j'ai eu la même chose que toi avec mon fichier de tout à l'heure.
 
J'sais pas ce que j'ai fait entre mon terminal et le forum, doit être fatigué.  :o


Message édité par Elmoricq le 30-05-2005 à 14:34:19
n°1101721
ptinat
Posté le 30-05-2005 à 14:36:32  profilanswer
 

Oui ça marche! Merci beaucoup de ton aide

n°1101800
ptinat
Posté le 30-05-2005 à 15:21:26  profilanswer
 

Encore moi, j'ai un autre soucis.
En faite, je viens de me rendre compte que la condition : chaque ligne commence par un chiffre n’est pas tout à fait exacte.
La vrai condition est que chaque ligne doit commencer par un seul chiffre, soit 0 soit 1.
 
Désolé de ne pas avoir bien préciser tout au départ.

n°1101802
ptinat
Posté le 30-05-2005 à 15:21:33  profilanswer
 

Encore moi, j'ai un autre soucis.
En faite, je viens de me rendre compte que la condition : chaque ligne commence par un chiffre n’est pas tout à fait exacte.
La vrai condition est que chaque ligne doit commencer par un seul chiffre, soit 0 soit 1.
 
Désolé de ne pas avoir bien préciser tout au départ.

n°1101925
Elmoricq
Modérateur
Posté le 30-05-2005 à 16:53:10  profilanswer
 

Dans ce cas, remplace :
 

if ( $0 ~ /^[0-9]/ && NR != 1 )


 
Par :

if ( $0 ~ /^[0-1];/ && NR != 1 )


Ce qui signifie pour l'expression régulière (le contenu entre les deux '/') : "si le premier caractère est 0 ou 1, et qu'il est immédiatement suivi d'un point-virgule"

n°1102491
ptinat
Posté le 31-05-2005 à 09:54:41  profilanswer
 

merci bcp là ça marche et g terminé :)
vrai de vrai :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  supprimer certain retour chariot

 

Sujets relatifs
supprimer les "trous" d'un tableau ?Flash et php retour à la ligne
[html] Comment supprimer les selectionnés ? (Formulaires)Supprimer complètement des espaces invisibles.
supprimer l'ascenceur dans page html[C#] eviter un retour à la ligne avec Console.WriteLine
Caramail le retour ?!supprimer ce qu'il y a entre 2 balises
supprimer des mots dans des fichiersformulaire : infos qui restent si retour après validation
Plus de sujets relatifs à : supprimer certain retour chariot


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR