我试图创建一个脚本,将oracleserver作为localhost的别名附加到/etc/hosts。这意味着我需要:
找到^127.0.0.1和不oracleserver$的行
然后,将oracleserver附加到此行
我知道最好的做法可能是用消极的展望。但是,sed没有look around功能:What's wrong with my lookahead regex in GNU sed?。有人能给我提供一些可能的解决办法吗?

最佳答案

sed -i '/oracleserver$/! s/^127\.0\.0\.1.*$/& oracleserver/' filename

/oracleserver$/!-在不以oracleserver结尾的行上
^127\.0\.0\.1.*$-如果从127.0.0.1开始,则替换整条线路
& oracleserver-该行加上空格分隔符' '(必需)和oracleserver之后

关于regex - 如何使用sed查找以AAA开头但不以BBB结尾的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34375891/

10-09 20:55