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ãosed
.