假设我有一个包含以下内容的文件:
#plugin = eosio::producer_plugin
#plugin = eosio::producer_api_plugin
如果我尝试使用 sed 取消注释值,它将失败:
sed -E '/plugin.*(producer_plugin)/s/^#//g' file.ini
需要注意的是,#前面有一个空格。
答案1
如果您需要跳过行开头的空格字符,您可以执行以下操作:
/^ *A/
脱字符号、空格、星号、第一个重要字符。这意味着“在行的开头,有零个或多个空格,后跟字母 A”。
在你的例子中
sed -E '/plugin.*(producer_plugin)/s/^ *#//g' file.ini
请阅读此处了解特殊字符的说明: https://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended