directadmin

如果您正在寻找包含特定代码的特定类型的所有文件,您可以通过将find命令与您正在查找的文本的grep组合来实现。 例如,要找到一个特定的字符串,可以在/ home目录下的所有php文件中

在特定类型的所有文件中查找特定的代码

来源:梦飞科技 作者:梦飞 浏览量:126 更新:2018-05-07
如果您正在寻找包含特定代码的特定类型的所有文件,您可以通过将find命令与您正在查找的文本的grep组合来实现。
 
例如,要找到一个特定的字符串,可以在/ home目录下的所有php文件中将其称为asdfg,使用如下所示的脚本:
 

#!/bin/sh

#avoid special characters like quotes and brackets
STRING=asdfg

for i in `find . -name "*.php"`; do
{
       C=`grep -c --max-count=1 "$STRING" $i`
       if [ "$C" -gt 0 ]; then
               echo $i;

               #perl regex here, on $i, if needed
       fi
};
done;
exit 0;

如果你需要摆脱所提到的字符串,一个样本Perl正则表达式将是:

perl -pi -e 's/asdfg//' $i

在那里它会找到asdfg的所有实例,并将其替换为“”(无),将其从文件中删除。
 
请注意,如果您需要替换特殊字符,则正则表达式会变得更加复杂。
在Google上搜索如何使用正则表达式进行字符串交换。
 
***总是***在测试文件上测试perl正则表达式,以确保它可以正常工作,然后再做大量任务以确保不会破坏任何东西。
部分文章来源与网络,若有侵权请联系站长删除!