首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过回波向multipath.conf添加行

通过回波向multipath.conf添加行
EN

Stack Overflow用户
提问于 2015-08-07 13:05:49
回答 1查看 141关注 0票数 0

是否可以通过echo或任何其他可选命令向multipath.conf添加以下行?

##ORA_FRA_IRD01P3 1x100GB多路径{wwid350002ac006450f58别名ORA_FRA_IRD01P3 }

文件末尾有一个封闭的大括号'}‘。上面提到的行必须粘贴在multipath.conf文件中关闭的大括号'}‘的上方。

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2015-08-07 13:39:02

给你:

代码语言:javascript
复制
tac multipath.conf | sed 's/}/}\n##ORA_FRA_IRD01P3 1x100GB multipath { wwid 350002ac006450f58 alias ORA_FRA_IRD01P3 }/ ; ta ; b ; :a ; N ; ba' | tac > multipath.conf.tmp && mv -f multipath.conf.tmp multipath.conf

示例:

代码语言:javascript
复制
[root@joeyoung.io stackoverflow]# cat multipath.conf
{
        {
                line1
                line2
                line3
                line4
        }
}
[root@joeyoung.io stackoverflow]# tac multipath.conf | sed 's/}/}\n##ORA_FRA_IRD01P3 1x100GB multipath { wwid 350002ac006450f58 alias ORA_FRA_IRD01P3 }/ ; ta ; b ; :a ; N ; ba' | tac > multipath.conf.tmp && mv -f multipath.conf.tmp multipath.conf
[root@joeyoung.io stackoverflow]# cat multipath.conf
{
        {
                line1
                line2
                line3
                line4
        }
##ORA_FRA_IRD01P3 1x100GB multipath { wwid 350002ac006450f58 alias ORA_FRA_IRD01P3 }
}

解释

tac从文件的最后一行开始,逐行打印文件。

sed 's/}/}\n##ORA_FRA_IRD01P3 1x100GB multipath { wwid 350002ac006450f58 alias ORA_FRA_IRD01P3 }/接受}的第一个实例(这发生在文件中}的最后一个实例,因为tac首先打印最后一行)并将其替换为另一个},后面是换行符,后面是要插入到文件中的文本行。

This stackoverflow answer解释了; ta ; b ; :a ; N ; ba'

sed调用的输出通过管道通过tac进行回输,以将其按原来的顺序放回。

最后一个调用的tac的输出被写入一个临时文件,因为我们还不能覆盖该文件的原始版本。

双符号(&&)意味着如果第一个命令成功,则继续下一个命令。

最后,我们使用multipath.conf命令强制将临时文件重命名为mv -f,从而覆盖原始内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31878494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档