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

 


Dernière réponse
Sujet : [Shell Unix] J'ai un problème avec la commande cat
jupiler euh vi :D
 
ou alors print $toto :D
 
j'ai voulu mettre toto pour varier mais je ne l'ai pas mis partout  :sarcastic:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
jupiler euh vi :D
 
ou alors print $toto :D
 
j'ai voulu mettre toto pour varier mais je ne l'ai pas mis partout  :sarcastic:
Jar Jar

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 ?

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

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.

fdl 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!
jupiler

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

Jar Jar 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 !
fdl 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]

jupiler ca doit etre $nom qui merde
 
pour passer une variable à un awk c'est un peu plus compliqué
fdl 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!
fabriceMerc booohh!! :-) c'etait pour rester un peu pres dans la mm syntaxe que lui

 

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

Jar Jar 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]

fabriceMerc ./script fichier
 
 
while read ligne  
    do
     ....
    done >$1
 
un truc comme sa marche ( vérifie la syntaxe )
fdl 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.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)