Encontrei a linha sed 's~ ~~g'
em um script de shell em um sistema Linux. O que é isso ~
?
relate perguntas
-
Linux grep o que no arquivo 1 está no arquivo 2 [duplicado]
-
como grep linhas após a terceira vírgula com condição
-
remova o número de linhas duplicadas com base na correspondência antes da primeira vírgula
-
Como posso melhorar este script de conversão de personagens?
-
Como remover uma única linha entre duas linhas
É um delimitador alternativo para o comando
sed
substituto ( ).s
Normalmente, a barra é usada, como ems/pattern/replacement/
, massed
permite que quase qualquer caractere seja usado.A principal razão para usar outro delimitador diferente
/
dased
expressão de substituição é quando a expressão atuará em/
caracteres literais.Por exemplo, para substituir o caminho
/some/path/here
por/other/path/now
, pode-se fazerIsso sofre do que geralmente é chamado de "síndrome do palito inclinado" , o que significa que é difícil de ler e manter adequadamente.
Em vez disso, podemos usar outro delimitador de expressão:
Using
~
é apenas outro exemplo de um delimitador de expressão de substituição válido.sua expressão
é o mesmo que
e removerá todos os espaços da entrada. Nesse caso, usar outro delimitador não
/
é necessário, pois nem o padrão nem a substituição contêm/
.Outra maneira de fazer a mesma coisa é
É um delimitador de substituição. O delimitador usado com mais frequência é uma barra
/
. Massed
pode usar qualquer caractere como delimitador - ele usará automaticamente o caractere seguintes
como delimitador:Também é possível usar o espaço como delimitador:
Outros delimitadores que
/
são usados com mais frequência quando você tem muitas barras em seu comando na sintaxe está ficando confuso. Considere este caso em que queremos converter vários espaços em apenas um caractere de espaço: Em vez devocê pode correr
que é mais claro.