|
Bas de page | |
---|---|
Auteur | Sujet : [Shell] Remplacer des infos dans un fichier |
Publicité | Posté le 25-03-2009 à 15:14:21 |
Elmoricq Modérateur | perl -pi -e 's/\|A/|<remplacement>/;' <tonfichier> |
Elmoricq Modérateur | nawk -F'|' 'BEGIN{ OFS = "|"; } { if ($1 == "3" && $2 ~ "A" ) { $2 = "NEW"; } print $0; }' <fichier> > <nouveau fichier> ou perl -pi -e 's/3\|A/3|NEW/;' <fichier> ou sed -e 's/3\|A/3|NEW/;' <fichier> > <nouveau fichier> Message cité 1 fois Message édité par Elmoricq le 25-03-2009 à 17:25:33 |
Tonio94 | Merci pour ta réponse Elmoricq !
|
Sve@r |
Message édité par Sve@r le 01-04-2009 à 11:38:13 --------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
matafan | Tu ne peux pas écrire dans le fichier que tu es en train de lire. Je peux me tromper mais je ne pense pas que le 0<&3 change quoi que ce soit au problème. Au final tu écris toujours dans le fichier que tu es en train de lire.
Message cité 1 fois Message édité par matafan le 30-03-2009 à 09:57:48 |
Sve@r |
Message édité par Sve@r le 01-04-2009 à 11:39:22 --------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
Publicité | Posté le 01-04-2009 à 11:36:57 |
Tonio94 | Sur un korn shell ça me pond une erreur :
|
Elmoricq Modérateur |
Tonio94 | Oui c'est déjà ce que je fais
|
matafan | Il est moisi ton ksh, avec le miens ça marche bien (sous AIX). |
Sve@r |
Message édité par Sve@r le 02-04-2009 à 14:45:31 --------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
Sve@r |
--------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
Tonio94 | Effectivement j'ai testé et vérifié ! C'est propre comme méthode mais pas forcément pratique quand on a besoin d'écrire souvent dans le fichier et encore moins quand le même script le fait en parallèle. Petite question sur la ligne suivante :
J'aimerais savoir comment remplacer le "$2" qui représente le deuxième élement de mon fichier file par une variable qui contiendra le numéro de colonne. Dans ce genre là :
Car j'écris souvent cette même ligne et j'aimerais la mettre dans une fonction.
Message cité 1 fois Message édité par Tonio94 le 07-04-2009 à 16:19:15 |
Sve@r |
Message édité par Sve@r le 07-04-2009 à 16:57:59 --------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
Tonio94 | Merci t'es un chef Sve@r ! On peut déclarer ce qu'on veut comme variable dans le BEGIN ? Car j'essaie avec une modification de 2 colonnes mais il ne me fait que la 2e :
Et autre problème, quand je passe des valeurs numériques aucun soucis mais quand je passe une chaine de caractère à $value il ne m'écrit rien dans le fichier et écrase le contenu de la colonne (à l'emplacement de $var je précise). Merci.
Message cité 1 fois Message édité par Tonio94 le 07-04-2009 à 17:54:53 |
Tonio94 | Merci pour l'explication détaillée matafan |
Sve@r |
Message édité par Sve@r le 08-04-2009 à 13:17:15 --------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
Tonio94 | En fait j'appelle souvent nawk de la même façon mais avec les valeurs et la position de colonne qui changent. Alors plutôt que de le répéter plusieurs fois dans mon code j'aimerais le mettre dans une fonction, dans ce style là :
Écris de cette manière ça fonctionne (grâce à ton précèdent post), quand j'appelle la fonction replace le premier paramètre passé est "2" qui correspond au numéro de colonne à remplacer puis "index1" qui correspond à la réference/index (pour savoir à quelle ligne il faut remplacer) et enfin "2009" qui est la valeur à écrire à cet emplacement. Ensuite j'ai deux problèmes :
(seulement col2 est mis à jour dans le file)
Je ne sais pas si c'est plus clair comme cela, en espérant que tu puisses me filer un coup de pouce Merci Message cité 1 fois Message édité par Tonio94 le 08-04-2009 à 15:01:49 |
Sve@r |
Message édité par Sve@r le 09-04-2009 à 13:17:21 --------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
Tonio94 | Merci pour ta contribution c'est top ! je vais mettre tout ça en application ! (dsl pour le temps de réaction, retour de vacances!)
Message cité 1 fois Message édité par Tonio94 le 22-04-2009 à 11:47:18 |
Sve@r |
--------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
Tonio94 |
Sve@r |
--------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
Tonio94 |
|
Publicité | Posté le |