Regex 查找和替换多个文件中的文本

Regex 查找和替换多个文件中的文本,regex,replace,sed,grep,xargs,Regex,Replace,Sed,Grep,Xargs,我将typo3网站(LAMP)从knopix服务器迁移到ubuntu 10.04机器。现在有一半的网站可以正常工作,而另一半没有。我想我发现了这个问题,但无法解决它,因为我没有足够的数学知识,所以我可以做很好的正则表达式 在新服务器上,文件位于“/var/www/cms”中 旧服务器在/media/sda3/www/quickstart-4.2.1中有它们/ 我认为,如果将“/var/www/cms”中包含“/media/sda1/www/quickstart-4.2.1/”字符串的所有文件(包

我将typo3网站(LAMP)从knopix服务器迁移到ubuntu 10.04机器。现在有一半的网站可以正常工作,而另一半没有。我想我发现了这个问题,但无法解决它,因为我没有足够的数学知识,所以我可以做很好的正则表达式

在新服务器上,文件位于“/var/www/cms”中 旧服务器在/media/sda3/www/quickstart-4.2.1中有它们/

我认为,如果将“/var/www/cms”中包含“/media/sda1/www/quickstart-4.2.1/”字符串的所有文件(包括子目录)替换为“/var/www/cms”,则该站点将正常工作

这位unix新手将非常感谢您的帮助。 提前谢谢


B

看起来您不需要正则表达式来完成此操作。
这是一个普通的字符串搜索/替换,您可以使用任何文本编辑器进行。许多文本编辑器不仅可以搜索/替换一个打开的文件,还可以搜索一个洞目录。我经常使用


此外,不直接在服务器上编辑文件,而是在修复文件后使用本地副本和传输文件应该会容易得多。

基于查找的管道是您的朋友。这个答案假设是基于Linux/Unix的操作系统

我强烈建议只剪切每个命令,一次一个,粘贴到命令行上 在您有更多经验之前,不要尝试将其转换为shell脚本。 确保你了解每一步都在做什么,并三次检查结果是否真的是他们应该做的,而不仅仅是你想要的或假设的;-!)

选择一个文件名

find . -print -name 'myTestFile.sav_20110405' | xargs /bin/rm
确保该文件是唯一被删除的文件

现在清理其余的文件

find . -print -name '*.sav_20110405' | xargs /bin/rm
祝你好运,并对每件事进行三次检查;-)

我希望这有帮助

另外,由于您似乎是新用户,如果您得到的答案有助于您,请记住将其标记为已接受,和/或将其作为有用的答案给予+(或-)

find . -print -name '*.sav_20110405'
find . -print -name 'myTestFile.sav_20110405' | xargs /bin/rm
find . -print -name '*.sav_20110405' | xargs /bin/rm