X
Xah Lee
© # -*- coding: utf-8 -*-
© # Python
©
© import sys
©
© nn = len(sys.argv)
©
© if not nn==5:
© print "error: %s search_text replace_text in_file out_file" %
sys.argv[0]
© else:
© stext = sys.argv[1]
© rtext = sys.argv[2]
© input = open(sys.argv[3])
© output = open(sys.argv[4],'w')
©
© for s in input:
© output.write(s.replace(stext,rtext))
© output.close()
© input.close()
-------------------------
save this code as find_replace.py
run it like this:
python find_replace.py findtext replacetext in_file out_file
the sys.argv is from sys. sys.argv[0] is the program's name itself.
note the idiom
"for variable_name in file_object"
note that since this code reads each
line in turn, so huge file is of no-problemo
the code is based from Python
Cookbook of Alex Martelli & David
Ascher, page 121
in Python terminal, type help() then
'FILES' and or 'sys'
for reference.
try to modify this file for your
needs.
--------------------------------------
In perl, similar code can be achieved.
the following code illustrates.
if (scalar @ARGV != 4) {die "Wrong arg! Unix BNF: $0 <sstr> <rstr>
<file id1> <file id2>\n"}
$stext=$ARGV[0];
$rtext=$ARGV[1];
$infile = $ARGV[2];
$outfile = $ARGV[3];
open(F1, "<$infile") or die "Perl fucked up. Reason: $!";
open(F2, ">$outfile") or die "Perl fucked up. Reason: $!";
while ($line = <F1>) {
chomp($line);
$line =~ s/$stext/$rtext/g;
print F2 "$line\n";
}
close(F1) or die "Perl fucked up. Reason: $!";
close(F2) or die "Perl fucked up. Reason: $!";
Xah
(e-mail address removed)
http://xahlee.org/PageTwo_dir/more.html
© # Python
©
© import sys
©
© nn = len(sys.argv)
©
© if not nn==5:
© print "error: %s search_text replace_text in_file out_file" %
sys.argv[0]
© else:
© stext = sys.argv[1]
© rtext = sys.argv[2]
© input = open(sys.argv[3])
© output = open(sys.argv[4],'w')
©
© for s in input:
© output.write(s.replace(stext,rtext))
© output.close()
© input.close()
-------------------------
save this code as find_replace.py
run it like this:
python find_replace.py findtext replacetext in_file out_file
the sys.argv is from sys. sys.argv[0] is the program's name itself.
note the idiom
"for variable_name in file_object"
note that since this code reads each
line in turn, so huge file is of no-problemo
the code is based from Python
Cookbook of Alex Martelli & David
Ascher, page 121
in Python terminal, type help() then
'FILES' and or 'sys'
for reference.
try to modify this file for your
needs.
--------------------------------------
In perl, similar code can be achieved.
the following code illustrates.
if (scalar @ARGV != 4) {die "Wrong arg! Unix BNF: $0 <sstr> <rstr>
<file id1> <file id2>\n"}
$stext=$ARGV[0];
$rtext=$ARGV[1];
$infile = $ARGV[2];
$outfile = $ARGV[3];
open(F1, "<$infile") or die "Perl fucked up. Reason: $!";
open(F2, ">$outfile") or die "Perl fucked up. Reason: $!";
while ($line = <F1>) {
chomp($line);
$line =~ s/$stext/$rtext/g;
print F2 "$line\n";
}
close(F1) or die "Perl fucked up. Reason: $!";
close(F2) or die "Perl fucked up. Reason: $!";
Xah
(e-mail address removed)
http://xahlee.org/PageTwo_dir/more.html