다음 내용이 포함된 파일이 있다고 가정해 보겠습니다.
#plugin = eosio::producer_plugin
#plugin = eosio::producer_api_plugin
sed를 사용하여 값의 주석 처리를 제거하려고 하면 실패합니다.
sed -E '/plugin.*(producer_plugin)/s/^#//g' file.ini
# 앞에 공백이 있다는 점에 유의하세요.
답변1
줄 시작 부분에서 공백 문자를 건너뛰어야 하는 경우 다음을 수행할 수 있습니다.
/^ *A/
캐럿, 공백, 별표, 첫 번째 유효 문자. 이는 "줄 시작 부분에 0개 이상의 공백이 있고 그 뒤에 문자 A가 있음"을 의미합니다.
귀하의 예에서
sed -E '/plugin.*(producer_plugin)/s/^ *#//g' file.ini
특수 문자에 대한 설명은 여기를 참조하세요. https://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended