Ben*_*jia 19 unix terminal replace sed
我们将代码库中的所有静态html页面转换为php页面.第一步是将所有.html文件扩展名更改为.php(我已经这样做了).第二步是更新每个html页面中的所有链接以指向新的php页面.
(例如,在index.php里面我有指向contact.html和about-us.html的链接.既然我们已经将每个.html文件扩展名替换为.php,我们需要将contact.html更改为contact.php,并且同样,关于-us.html到about-us.php).
我现在要做的是在多个文件中搜索特定的字符串.(在许多文件中搜索"contact.html",例如index.php,index2.php,index3.php等等.)之后,用"contact.php"替换所有这些文件中的所有"contact.html" ".
我不熟悉unix命令行,到目前为止,我已经在论坛中看到了其他人的类似问题,但不太明白哪一个可以帮助我实现我想要的.我正在使用cygwin,如果可能的话,我需要在没有perl脚本的情况下解决这个问题,因为我没有安装它.我需要尝试使用sed,grep,find或其他任何东西.
所以,如果你们中的任何人认为这是重复的,请指出我在那里的相关帖子.谢谢你的时间.
Ada*_*iss 34
试试这个:
find . -name '*.html' -exec sed -i 's/\.html/\.php/g' "{}" \;
它会查找当前为此在所有文件和子目录.html,并运行sed在他们每个人的更换.html与.php它出现在其中的任何地方.
有关详细信息,请参阅http://content.hccfl.edu/pollock/unix/findcmd.htm.
小智 14
在我的Mac上,我不得不在-i选项中添加一个参数:要添加到名称的扩展名(在这种情况下,没有任何内容,因此文件存储在原位).
find . -name '*.html' -exec sed -i '' 's/\.html/\.php/g' "{}" \;
Run Code Online (Sandbox Code Playgroud)