我正在使用rpl
Linux 中的程序来替换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 替换它们。