我想将几个单行移到一个脚本中。
例如:
perl -i.bak -pE "s/String_ABC/String_XYZ/g" Cities.Txt
perl -i.bak -pE "s/Manhattan/New_England/g" Cities.Txt
以上对我来说效果很好,但代价是两个磁盘 I/O 操作。
我想将上述逻辑移动到单个脚本中,以便所有替换都通过文件打开和编辑一次来实现。
EDIT1:根据您的建议,我在一个脚本中编写了这个片段,当从 Windows 批处理文件调用它时,它只会挂起:
#!/usr/bin/perl -i.bak -p Cities.Txt
use strict;
use warnings;
while( <> ){
s/String_ABC/String_XYZ/g;
s/Manhattan/New_England/g;
print;
}
EDIT2:好的,这就是我实施您的建议的方式。奇迹般有效!
批处理文件:
perl -i.bal MyScript.pl Cities.Txt
MyScript.pl
#!/usr/bin/perl
use strict;
use warnings;
while( <> ){
s/String_ABC/String_XYZ/g;
s/Manhattan/New_England/g;
print;
}
非常感谢所有做出贡献的人。