删除和替换 .php 文件中的字符串
deleting and replacing string inside .php file
我在加载 php 文件然后用其他内容替换他的内容时遇到了一些问题。
我的代码看起来像这样
$pattern="*random text*"
$rep=" "
$where=`ls *.php`
find -f $where -name "*.php" -exec sed -i 's/$pattern/$rep/g' {} \;
这不会加载整行文本。 $pattern 可以加载多少个字符也有限制吗?
还有办法让这个 .sh 文件每 15 分钟执行一次吗?
我正在使用 mac osX。
谢谢!
语法$var="value"
错误。你需要说 var="value"
.
如果您只想对匹配 *.php
的文件执行某些操作,您只是在一个目录中进行操作,因此无需使用 find
。只需使用 for
循环:
pattern="*random text*"
rep=" "
for file in *.php
do
sed -i "s/$pattern/$rep/g" "$file"
done
请参阅 sed "s/$var/.../g"
而不是 sed 's/$var/.../g'
的用法。双引号扩展了表达式中的变量;否则,您将寻找文字 $var
.
请注意 sed -i
单独在 OS X 中不起作用,因此 you probably have to say sed -i ''
.
替换示例:
给定一个文件:
$ cat a
hello
<?php eval(1234567890) regular php code ?>
bye
让我们删除 eval()
中的所有内容:
$ sed -r 's/(eval\()[^)]*/X/' a
hello
<?php eval(X) regular php code ?>
bye
我在加载 php 文件然后用其他内容替换他的内容时遇到了一些问题。 我的代码看起来像这样
$pattern="*random text*"
$rep=" "
$where=`ls *.php`
find -f $where -name "*.php" -exec sed -i 's/$pattern/$rep/g' {} \;
这不会加载整行文本。 $pattern 可以加载多少个字符也有限制吗? 还有办法让这个 .sh 文件每 15 分钟执行一次吗?
我正在使用 mac osX。
谢谢!
语法$var="value"
错误。你需要说 var="value"
.
如果您只想对匹配 *.php
的文件执行某些操作,您只是在一个目录中进行操作,因此无需使用 find
。只需使用 for
循环:
pattern="*random text*"
rep=" "
for file in *.php
do
sed -i "s/$pattern/$rep/g" "$file"
done
请参阅 sed "s/$var/.../g"
而不是 sed 's/$var/.../g'
的用法。双引号扩展了表达式中的变量;否则,您将寻找文字 $var
.
请注意 sed -i
单独在 OS X 中不起作用,因此 you probably have to say sed -i ''
.
替换示例:
给定一个文件:
$ cat a
hello
<?php eval(1234567890) regular php code ?>
bye
让我们删除 eval()
中的所有内容:
$ sed -r 's/(eval\()[^)]*/X/' a
hello
<?php eval(X) regular php code ?>
bye