Eu preciso substituir uma string em html sed não está funcionando

0

Aqui está o código no script de shell que usei

sed 's/xyxx/$date1/' /u001/Scripts/abc.html > /u001/Scripts/abc.html 

O código está tentando imprimir tags HTML dentro do comando AWK

nawk 'BEGIN{
      FS=","
      print "<HTML>""<HEAD>""<p>Hi All,<br><br>There are no cases closed on the"
      print  "xyxx that meet the criteria for submission</p>"
      }
      END{
      print "<p>Regards,<br>Support Team</p></BODY></HTML>"
      }
      '
    
por RAJESH A S 21.11.2018 / 07:50

1 resposta

1

Neste comando,

sed 's/xyxx/$date1/' /u001/Scripts/abc.html > /u001/Scripts/abc.html 

o redirecionamento acontece primeiro! Então o shell abre /u001/Scripts/abc.html para escrever e esvazia. Em seguida, o comando sed é executado, mas o arquivo de entrada está vazio, portanto, não há saída.

Como os comentários sugerem, você deve usar:

sed -i.bak 's/xyxx/'"$date1"'/' /u001/Scripts/abc.html 

qual será

  • crie um arquivo de backup com extensão .bak e sobrescreva o arquivo original ( -i.bak )
  • e use o valor da variável $date1 , porque ele é colocado entre aspas duplas, diferente do resto da expressão sed .
por 21.11.2018 / 14:27

Tags