次の内容を含むファイルがあるとします。
#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