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
.bake 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.