将单词替换为同一目录中的所有文件?

时间:2014-04-10 04:06:49

标签: perl replace

是否有一种方法可以使用perl来更改标记的实例

<english>加入<voice required="name = VW Julie">

<español>加入<voice required="name = IVONA 2 Penélope">

用于同一目录中的所有文档。

这适用于textaloud,因此当语言改变时,计算机会更改为其他语音

我可以用grep来做,但总是很无聊。如果我只双击脚本会更好。 但我不知道该怎么做,任何帮助都是好的。感谢

3 个答案:

答案 0 :(得分:1)

这应该适用于Windows,

script.pl

use utf8;
BEGIN { @ARGV = glob("@ARGV\\*"); }
s/<english>/<voice required="name = VW Julie">/g;
s/<español>/<voice required="name = IVONA 2 Penélope">/g;

perl -i~ -p script.pl C:\Path\to\files

答案 1 :(得分:0)

你可以这样做:

$ cd /PATH/TO/DIRECTORY
$ perl -i -pe -Mutf8 's/<english>/<voice required="name = VW Julie">/g' *
$ perl -i -pe -Mutf8 's/<español>/<voice required="name = IVONA 2 Penélope">/g' *

答案 2 :(得分:0)

以下Unix shell命令应该这样做:

perl -Mutf8 -pie 's/\<english\>/<voice required="name = VW Julie">/g; s/\<español\>/<voice required="name = IVONA 2 Penélope">/g' DIRECTORY/*

-e选项告诉perl在下一个参数中运行命令。 -p告诉它在每个输入行的循环中运行命令,在命令后打印$_-i选项告诉它用输出替换输入文件。

我认为这也适用于Windows命令提示符,但我从未在Windows上使用过Perl。

相关问题