Bonsoir,
Je voulais faire un script pour modifier des lignes dans un fichier, mais le script n'a pas l'air de fonctionner, le voici :
Dans ce cas il modifie bien le fichier test.conf, en changeant test par megacool...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #!/usr/bin/perl $file = "test.conf"; $old = $file; $new = "$file.tmp.$$"; $bak = "$file.orig"; open(OLD, "< $old") or die "can't open $old: $!"; open(NEW, "> $new") or die "can't open $new: $!"; while (<OLD>) { s/\btest\b/megacool/i; (print NEW $_) or die "can't write to $new: $!"; } close(OLD) or die "can't close $old: $!"; close(NEW) or die "can't close $new: $!"; rename($old, $bak) or die "can't rename $old to $bak: $!"; rename($new, $old) or die "can't rename $new to $old: $!";
Pour le moment tout va bien,
Mais voici ce que j'aimerais vraiment faire.
Je souhaiterais modifier les lignes :Par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #gamepanel2 <Location > Order allow,deny Deny from all </Location>
Donc voici le nouveau code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #gamepanel2 <Location > Order allow,deny Allow from all </Location>
Mais dûes à des erreurs, cela ne modifie pas le fichier...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #!/usr/bin/perl $file = "test.conf"; $old = $file; $new = "$file.tmp.$$"; $bak = "$file.orig"; open(OLD, "< $old") or die "can't open $old: $!"; open(NEW, "> $new") or die "can't open $new: $!"; # Correction des fautes de frappe, en préservant les majuscules while (<OLD>) { s/\b#gamepanel2 <Location > Order allow,deny Deny from all\b/#gamepanel2 <Location > Order allow,deny Deny from all/i; (print NEW $_) or die "can't write to $new: $!"; } close(OLD) or die "can't close $old: $!"; close(NEW) or die "can't close $new: $!"; rename($old, $bak) or die "can't rename $old to $bak: $!"; rename($new, $old) or die "can't rename $new to $old: $!";
Serait-ce à cause des caractéres spéciaux (<, >, #, /...) ?
Malgrés toutes les F.A.Q et documentations, je n'ai rien trouvé pour m'aider
Pouvez-vous m'aider ?
Merci d'avance
Partager