sed '/^#\t\(ra\|ost\|java\)\t/ s/^#//' file
ou (se as expressões regulares estendidas são suportadas) você pode evitar um pouco do escape
sed -E '/^#\t(ra|ost|java)\t/ s/^#//' file
Eu tenho um arquivo de configuração no seguinte formato
# ra y 1000000 \x2e\x72\x61\xfd
# ost y 500000000 \x21\x42\x44\x4e
# java y 1000000 \xca\xfe\xba\xbe
Isso é o que eu quero fazer:
ra
, ost
, java
ra
, ost
, java
, remova #
no início Estou me concentrando na guia porque o arquivo de configuração também contém outro texto que pode ter ra
, ost
, java
mencionado, mas todos serão separados com espaço antes ou depois porque eles seriam mencionados em um parágrafo e eu não quero descomentar essas linhas. Portanto, preciso procurar a guia
steeldriver já respondeu. A edição menciona uma parte do arquivo em que eu estava trabalhando, a pedido de John Goofy .
O arquivo é como
# Scalpel configuration file
...
# Scalpel can read Foremost 0.69 configuration files, but Scalpel
...
# Real Audio Files
# ra y 1000000 \x2e\x72\x61\xfd
# MISCELLANEOUS
# java y 1000000 \xca\xfe\xba\xbe
# Outlook files
# ost y 500000000 \x21\x42\x44\x4e
Embora este arquivo de configuração não tenha mencionado a lista de nomes de formatos de arquivo, ele pode trabalhar, mas se ele tivesse mencionado os nomes como
# Scalpel works on ra ost java
Então a resposta que o steeldriver deu é perfeita
Tags text-processing sed