我试图创建一个脚本,将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/