Sed avec étiquette et substition
Résolu
bab1812
Messages postés
11
Statut
Membre
-
bab1812 Messages postés 11 Statut Membre -
bab1812 Messages postés 11 Statut Membre -
Bonjour,
J'aurais encore besoin de votre aide avec la commande sed.
Je souhaiterai avec la commande sed commenter certaines lignes d'un programme pour cela les lignes sont repérer avec une étiquette stocké dans num.
Au préalable j'ai numéroté les lignes de mon programme avec la commande "nl" pour pourvoir les repérer avec l'étiquette.
exemple de lignes d'un fichier temp à commenter :
1 exemple de
2 programme
3 pour la commande sed
Je souhaite commenter la 3eme lignes de maniere à ajouer "C" devant la phrase de la maniere suivante :
1 exemple de
2 programme
3 C pour la commande sed
Pour cela j'utilise un programme fortran dans lequel j'appelle la commande sed avec la fonction "call system"
Voici le bout de programme
/-----------------------------
num ='3 '
field= 'pour'
command = 'sed -i " '//num//' s/'//field//'/C '//field//'/" temp'
print*, 'command =',command
call system(command)
/---------------------------------------------------------
Cette commande marche de manière tres aléatoire.
Auriez vous une commande ou une méthode plus appropriée
Merci de votre aide
J'aurais encore besoin de votre aide avec la commande sed.
Je souhaiterai avec la commande sed commenter certaines lignes d'un programme pour cela les lignes sont repérer avec une étiquette stocké dans num.
Au préalable j'ai numéroté les lignes de mon programme avec la commande "nl" pour pourvoir les repérer avec l'étiquette.
exemple de lignes d'un fichier temp à commenter :
1 exemple de
2 programme
3 pour la commande sed
Je souhaite commenter la 3eme lignes de maniere à ajouer "C" devant la phrase de la maniere suivante :
1 exemple de
2 programme
3 C pour la commande sed
Pour cela j'utilise un programme fortran dans lequel j'appelle la commande sed avec la fonction "call system"
Voici le bout de programme
/-----------------------------
num ='3 '
field= 'pour'
command = 'sed -i " '//num//' s/'//field//'/C '//field//'/" temp'
print*, 'command =',command
call system(command)
/---------------------------------------------------------
Cette commande marche de manière tres aléatoire.
Auriez vous une commande ou une méthode plus appropriée
Merci de votre aide
2 réponses
-
Salut,
Au préalable j'ai numéroté les lignes de mon programme avec la commande "nl" pour pourvoir les repérer avec l'étiquette.
A quoi bon ?sed
sait faire cela nativement.
$ cat plop
exemple de
programme
pour la commande sed
$ sed '3 s/^/C /' plop
exemple de
programme
C pour la commande sed
$ n=3;sed "${n} s/^/C /" plop
exemple de
programme
C pour la commande sed -
Merci pour ta réponse,
quand j'utilise cette 'sed -i "${n} s/^/C /" temp' dans mon programme, ça me commente toutes les lignes ..
Il me semble qu'il ne comprend pas l'étiquette ${n}
Merci