Linux“rpl”命令不替换文本

Linux“rpl”命令不替换文本

我正在使用rplLinux 中的程序来替换date(某些pdate(文件中的 。
但它显示A Total of 0 matches replaced in 1 file searched.
while grep 输出为date(

ariyan@ariyan-laptop:/var/www/moodle21$ grep -wR 'date(' admin/uploaduser.php
$today = make_timestamp(date('Y', $today), date('m', $today), date('d', $today), 0, 0, 0);

我正在使用rpl这个:

rpl -wR 'date(' 'pdate(' admin/uploaduser.php

问题是什么?

答案1

我以前从未使用过此工具,但看了“-w”的描述,我猜它处理单词边界的方式与预期略有不同。如果你去掉“-w”,它应该可以工作。此外,在示例中,你给了它一个要匹配的文件,因此 -R 也不会发挥作用。

尝试:

rpl 'date(' 'pdate(' admin/uploaduser.php

编辑:经过一番研究,我发现有一个错误已报告因为 rpl 不将标点符号作为单词边界处理,这就是为什么它不起作用的原因。所以唯一的选择是使用另一个工具。Sed 可以完成这项任务,因此您可以使用以下命令完成它:

sed -i 's/\bdate(/pdate(/g' admin/uploaduser.php

这将执行内联替换(-i),方式与 rpl 相同,并匹配开始日期的内容并用 pdate 替换它们。

相关内容