我试图找出是否可以在单个sed命令中编辑文件,而无需手动将已编辑的内容流式传输到新文件中,然后将新文件重命名为原始文件名.我尝试了这个-i选项,但我的Solaris系统说这-i是一个非法的选择.有不同的方式吗?
如何用sed替换一部分线?
这条线
DBSERVERNAME xxx
Run Code Online (Sandbox Code Playgroud)
应该替换为:
DBSERVERNAME yyy
Run Code Online (Sandbox Code Playgroud)
值xxx可以变化,dbservername和值之间有两个选项卡.此名称 - 值对是配置文件中的众多名称 - 值对之一.
我尝试了以下反向引用:
echo "DBSERVERNAME xxx" | sed -rne 's/\(dbservername\)[[:blank:]]+\([[:alpha:]]+\)/\1 yyy/gip'
Run Code Online (Sandbox Code Playgroud)
这导致了一个错误:`s'命令的RHS上的引用\ 1无效.
这个表达方式有什么问题?使用GNU sed.