Os espaços são mais conhecidos como "espaços em branco" e podem incluir não apenas espaços, mas guias (e outros caracteres "em branco"). Em uma expressão regular, muitas vezes você pode se referir a eles com [[:space:]]
ou \s
(dependendo do mecanismo RE) que inclui horizontal (espaço, tabulação e alguns caracteres de espaçamento unicode de várias larguras se disponível) para o qual você também pode usar caracteres de espaçamento [[:blank:]]
e às vezes \h
e vertical (como alimentação de linha, alimentação de formulário, guia vertical ou retorno de carro). [[:space:]]
às vezes é usado no lugar de [[:blank:]]
para sua cobertura do caractere de retorno de carro espúrio em arquivos de texto da Microsoft.
Você não pode substituir com grep
- é apenas uma ferramenta de pesquisa. Em vez disso, para substituir o yes
por no
, você pode usar um comando como este:
sed '/disable\>/s/\<yes\>/no/' /etc/xinetd.d/tftp
Isso diz a sed
para substituir (alterar) a palavra yes
em no
em qualquer linha que contenha a palavra disable
. (O operador \>
(inicialmente um ex
/ vi
regexp), em algumas implementações de sed
, força um fim de palavra (embora tenha cuidado, não são palavras delimitadas por espaço em branco , também corresponderia em disable-option
)). Convenientemente, isso evita completamente a questão do espaço em branco.
Cuidado: com uma linha como eyes yes
, uma substituição yes
ilimitada se aplicaria à primeira instância de yes
e deixaria você com eno yes
. É por isso que usei \<yes\>
em vez de apenas yes
.