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

  FORUM HardWare.fr
  Programmation

  [Shell Unix] J'ai un problème avec la commande cat

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Shell Unix] J'ai un problème avec la commande cat

n°121351
fdl
Posté le 04-04-2002 à 14:01:43  profilanswer
 

salut,
 
j'ai un fichier dont je dois modifier la 1ere ligne puis recopier les suivantes.
Donc, je fais un :
for line in `cat le_fichier`
do
  si 1ere ligne : echo nouvelle_ligne > nouveau_fichier
  sinon, echo line >> nouveau_fichier
done;
 
Mais, si la ligne comporte un espace ou plusieurs, dans nouveau_fichier, cela se transforme en retour à la ligne à chaque fois.
Le cat semble ne pas prendre toute la ligne et tient compte des espaces.
 
Est-ce que quelqu'un pourrait resoudre mon probleme.
 
C'est urgent! Merci d'avance.

mood
Publicité
Posté le 04-04-2002 à 14:01:43  profilanswer
 

n°121354
fabriceMer​c
Posté le 04-04-2002 à 14:15:36  profilanswer
 

./script fichier
 
 
while read ligne  
    do
     ....
    done >$1
 
un truc comme sa marche ( vérifie la syntaxe )

n°121355
Jar Jar
Intaigriste
Posté le 04-04-2002 à 14:18:05  profilanswer
 

Tu n'as pas l'impression d'essayer de tuer une baleine avec une tapette à mouches ?
 
awk '{ if(NR==1) print "Ma 1e ligne de remplacement"; else print }' fichier > nouveau_fichier

 

[jfdsdjhfuetppo]--Message édité par Jar Jar--[/jfdsdjhfuetppo]


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°121358
fabriceMer​c
Posté le 04-04-2002 à 14:19:19  profilanswer
 

booohh!! :-) c'etait pour rester un peu pres dans la mm syntaxe que lui

 

[jfdsdjhfuetppo]--Message édité par fabriceMerc--[/jfdsdjhfuetppo]

n°121361
fdl
Posté le 04-04-2002 à 14:40:02  profilanswer
 

bon, le truc de fabriceMerc marche, mais c'est vrai que la ligne de Jar Jar paraît bien aussi.
Sauf que ça me renvoit un erreur :
awk : Field $() is not correct
 
J'ai écrit ça :
awk '{ if (NR==1) print $nom; else print }' ${REP_OUT:?}/$1 > ${REP_OUT:?}/$nom.TXT
 
Jar Jar, si tu pouvais me dire d'où ça vient, je pourrais gagner quelques lignes!

n°121362
jupiler
Un cousin...
Posté le 04-04-2002 à 14:46:15  profilanswer
 

ca doit etre $nom qui merde
 
pour passer une variable à un awk c'est un peu plus compliqué


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°121364
fdl
Posté le 04-04-2002 à 14:50:59  profilanswer
 

Dans ce cas, ça risque d'être un peu plus compliqué avec awk.
 
Mais on peut utiliser le tail pour ce que je veux :
 
tail -n +2 fichier_a_recopier >> nouveau_fichier
 
Ca recopie fichier_a_recopier à partir de la 2ème ligne et l'ajoute à la suite de nouveau_fichier.

 

[jfdsdjhfuetppo]--Message édité par fdl--[/jfdsdjhfuetppo]

n°121365
Jar Jar
Intaigriste
Posté le 04-04-2002 à 14:52:23  profilanswer
 

nom=$nom awk '{ if (NR==1) print ENVIRON["nom"]; else print }'
 
Pour plus d'informations, cherche de la doc sur awk. C'est génial, ce truc. Personnellement, je l'utilise tous les jours pour faire du traitement de données numériques, c'est presque aussi puissant qu'un tableur mais ça va infiniment plus vite !


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°121366
jupiler
Un cousin...
Posté le 04-04-2002 à 14:54:15  profilanswer
 

fdl a écrit a écrit :

Dans ce cas, ça risque d'être un peu plus compliqué avec awk.
 
Mais on peut utiliser le tail pour ce que je veux :
 
tail -n +1 fichier_a_recopier >> nouveau_fichier
 
Ca recopie fichier_a_recopier à partir de la 2ème ligne et l'ajoute à la suite de nouveau_fichier.  




 
effectivement ca doit marcher mais pour ton propre intérêt, tu ferais mieux d'essayer de maîtriser awk


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°121368
fdl
Posté le 04-04-2002 à 15:02:53  profilanswer
 

Bon, là je pinaille un peu, mais si $nom est une variable locale,
est-ce qu'il y a un autre mot clé que ENVIRON?
Pour évietr de faire un 'export' dans le code, ça économise une ligne!

mood
Publicité
Posté le 04-04-2002 à 15:02:53  profilanswer
 

n°121370
Jar Jar
Intaigriste
Posté le 04-04-2002 à 15:05:44  profilanswer
 

fdl a écrit a écrit :

Bon, là je pinaille un peu, mais si $nom est une variable locale,
est-ce qu'il y a un autre mot clé que ENVIRON?
Pour évietr de faire un 'export' dans le code, ça économise une ligne!


On est obligé de passer par l'environnement, car le script awk s'exécute dans un autre processus.
Par contre, si tu mets nom=$nom au début de la ligne, tu économises la ligne export.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°121379
jupiler
Un cousin...
Posté le 04-04-2002 à 15:14:52  profilanswer
 

tu peux aussi rajouter l'option -v nom_var=valeur :
 
awk -v toto=$nom '{ print $nom }' ...


---------------
Je ne suis ni pour, ni contre, bien au contraire  
n°121395
Jar Jar
Intaigriste
Posté le 04-04-2002 à 15:21:28  profilanswer
 

jupiler a écrit a écrit :

tu peux aussi rajouter l'option -v nom_var=valeur :
 
awk -v toto=$nom '{ print $nom }' ...


Ça serait pas plutôt -v nom=$nom ?


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°121398
jupiler
Un cousin...
Posté le 04-04-2002 à 15:24:13  profilanswer
 

euh vi :D
 
ou alors print $toto :D
 
j'ai voulu mettre toto pour varier mais je ne l'ai pas mis partout  :sarcastic:


---------------
Je ne suis ni pour, ni contre, bien au contraire  

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

  [Shell Unix] J'ai un problème avec la commande cat

 

Sujets relatifs
-> COOKIE <- mais ou est le probleme ??probleme avec un textarea vide!!!
[PHP] peux t-on faire executer une commande MS-DOS ??[DEPLHI 4] Urgent :) HotKey + WM_CHAR = probleme :(, aidez moi
Probleme HTMLCompression/Decompression UNIX
problème d'opérateur logique[VB 6] Petit probleme
[XHTML & CSS] Problème avec des tableaux dans Mozilla [résolu][Licence étudiant borland] euh, c quoi le problème ?
Plus de sujets relatifs à : [Shell Unix] J'ai un problème avec la commande cat


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