Estou usando a data + ‘% D_% T’ para armazenar a data ea hora do sistema Unix em uma variável de shell chamada $ _now:

_now = “$ (date + ‘% D_% T’)”
Echo $ _now

Saídas:
01/20 / 12_16: 10: 42

Gostaria de substituir / e: com _. Estou ciente do seguinte comando sed:

Sed
> S /: / _ / g ‘<<< “$ _ now”

Saídas:
01_20_12_16_14_09

Como especificar dois padrões dentro do mesmo comando sed para substituir | E: com _ para que eu possa obter saída como 01_20_12_16_10_42?

Você pode usar qualquer um dos seguintes sed substitute localizar e substituir vários padrões:

 
 Sed -e 's / Localizar / Substituir / g' -e 's / Localizar / Substituir / g' <<< "$ var"
 Sed -e 's / Localizar / Substituir / g' -e 's / Localizar / Substituir / g' <inputFile> outputFile
 Out = $ (sed -e 's / Localizar / Substituir / g' -e 's / Localizar / Substituir / g' <<< "$ var")

OU

 
 Sed 's / Localizar / Substituir / g; s / Localizar / Substituir / g' <<< "$ var"
 Sed -e 's / Localizar / Substituir / g; s / Localizar / Substituir / g' <<< "$ var"
 Sed -e 's / Localizar / Substituir / g; s / Localizar / Substituir / g' <inputFile> outputFile
 Out = $ (sed -e 's / Localizar / Substituir / g; s / Localizar / Substituir / g' <<< "$ var")

Exemplos: Localizar e substituir Substituir Sed usando uma linha de comando Singe

 
 _now = "$ (sed -e 's /: // _ / g; s /: / _ / g' <<< $ (date + '% D_% T'))
 Echo $ _now

Saídas de amostra:

  01_20_12_16_22_21

Aqui está uma outra versão:

 
 _now = $ (sed 's / [\ /:] / _ / g' <<< $ (data + '% D_% T'))
 Echo "$ _now"

Saídas de amostra:

  01_20_12_16_24_42
Anúncios