perl regex通过命令行

时间:2015-04-09 08:15:09

标签: regex perl

我制作了一个小脚本来重命名值" S076852"进入" S076852D"在目录的所有文件中。虽然,我不知道为什么它会切换价值但增加更多特色。

在运行程序之前:

./MEMOD39:%include '~S076852/PROCL/MCEV/MODELA39';

运行程序后:

./MEMOD39:%include '~S076852DDDDD/PROCL/MCEV/MODELA39';

任何一个团体都能解释为什么它不断添加更多" D" ?

(在AIX上运行)

url=/adirectory/
filei=`ls $url`
for file in ${filei}; do
  find ${url} -type f |  xargs perl -pi -e 's/S076852/S076852D/g'
done

2 个答案:

答案 0 :(得分:2)

你的循环没有做任何有用的事情。您实际上并没有在filei中使用文件名,只是不必要地重复您的查找/替换。

只需使用

find /adirectory/ -type f | xargs perl -pi -e 's/S076852/S076852D/g'

答案 1 :(得分:1)

每次D之后添加S076852。因此,请确保数字后面没有D

url=/adirectory/
filei=`ls $url`
for file in ${filei}; do
  find ${url} -type f |  xargs perl -pi -e 's/S076852\//S076852D\//g'
done