shell脚本修改代码文件中的指定代码块
怎么用sed
,awk
等命令在指定代码块中插入一行代码。
假设有一个文件hello.php
,内容如下:
<?php
function hello()
{
}
function run()
{
hello();
}
run();
该如何用sed
或者awk
等命令,在hello
函数体内插入echo 'hello,world';
这段代码,使hello.php
修改成如下:
<?php
function hello()
{
echo 'hello,world';
}
function run()
{
hello();
}
run();
sed
好像只能作用于一行,如果hello
函数的{
跟函数名在同一行,倒是可以考虑把function hello(){
替换成,function hello(){echo 'hello,world';
来实现这个效果的。
该问题已经解决。解决方案是使用php读取整个文件进行字符替换,然后重新写入文件的方式来完成的。应用场景比较特殊,不能直接在源文件中加入“placeholder”的方案来完成。
实际应用场景:Dockerfile从github下载piplin的包,修改app/Providers/AppServiceProvider.php
文件,在方法function boot()
的代码块中加入\URL::forceScheme('https');
以启用https。容器本身搭建的是php网络服务器,已经安装了php组件,因此使用php来完成这件事,是这种情况下比较好的解决方案了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个用sed是比较困难的,如果你能接受用perl、java、python的话,写一个相应的脚本就简单多了,虽然长一点,但更容易维护。
把
hello.php
看作一个 template,就好做多了: