Merci de ta réponse et surtout de ton humour pour prétendre avoir à faire à un écolier ou un stagiaire. Malheureusement pour toi je n'en suis pas un, passons. Donc, Je te ferais juste remarquer que je ne voulais plus passer par une boucle (pour gain de temps), or toi t'y sautes a pieds joints... tes remarques tu te les gardes donc pour toi et la prochaine lis un peu mieux la demande. Sans vouloir te descendre, les autres réponses en plus d'être correctes, avaient l'avantage d'être plus pertinentes. Merci. Bonne journée.
En effet c'est un truc comme ca sauf que je ne voulais pas supprimer le champs 14 juste le dupliquer en 12. Mais c'est bon j'ai réussi, merci quand même. Bonne journée.
Par contre je perds 11 octets, et qd je fais un diff entre les deux fichiers il me dit 'Missing newline at the end of file du premier fichier' ... il ne devrait pas y avoir de différence en octets car je remplace 4 octets par 4 octets. Je pense que celui qui n'a pas de fin de fichier c'est le plus petit en taille (celui généré par la commande), pourquoi ne reproduit il pas le fichier de facon exact??
OK merci. j'ai essayé la commande sed 's/^\(ACT\(~[^~]*\)\{10\}~\)0[^~]*\(~[^~]*~\)\([^~]*\)/\1\4\3\4/' actes_39.fcv.old49 > actes_39.fcv.h
et ça marche trop bien trop vite... du coup plus de soucis... merci quand même, ca m'a éclairé.
Salut et merci, ca me fait avancer, y avait des trucs que je comprenais pas du type OFS="~" et maintenant j'ai pigé du coup, j'en ai fait un plus simple :
awk 'BEGIN {FS="~";OFS="~"}
$12 > 999 {print $0}
$12 < 1000 {$12=$14;print $0}
END {}' test > test_res
Seul ic il me met des ~ a la fin de chaque ligne si elles n'ont pas 12 champs minimum. Comment peut on éviter ca?? je vais essayer ta solution aussi.
[^] # Re: "open + while + split + if + join + print + close" grace a RTFM
Posté par hugo_migou . En réponse au message besoin de commande perl pour éviter une boucle sur grep, un if et un sed (en clair un rechercher remplacer conditionnel). Évalué à -1.
[^] # Re: l'instruction sed
Posté par hugo_migou . En réponse au message Recherche remplace champ avec condition. Évalué à 0.
[^] # Re: info sed
Posté par hugo_migou . En réponse au message besoin de commande perl pour éviter une boucle sur grep, un if et un sed (en clair un rechercher remplacer conditionnel). Évalué à 1.
[^] # Re: info sed
Posté par hugo_migou . En réponse au message besoin de commande perl pour éviter une boucle sur grep, un if et un sed (en clair un rechercher remplacer conditionnel). Évalué à 0.
[^] # Re: en awk:
Posté par hugo_migou . En réponse au message besoin de commande perl pour éviter une boucle sur grep, un if et un sed (en clair un rechercher remplacer conditionnel). Évalué à 1.
et ça marche trop bien trop vite... du coup plus de soucis... merci quand même, ca m'a éclairé.
[^] # Re: en awk:
Posté par hugo_migou . En réponse au message besoin de commande perl pour éviter une boucle sur grep, un if et un sed (en clair un rechercher remplacer conditionnel). Évalué à 1.
awk 'BEGIN {FS="~";OFS="~"}
$12 > 999 {print $0}
$12 < 1000 {$12=$14;print $0}
END {}' test > test_res
Seul ic il me met des ~ a la fin de chaque ligne si elles n'ont pas 12 champs minimum. Comment peut on éviter ca?? je vais essayer ta solution aussi.