Você não precisa escapar espaço no comando sed
, apenas use aspas duplas no comando echo
para evitar divisão de palavras :
$ DoMSp=$(echo "$DoM" | sed "s/^0*/ /"); echo "$DoMSp"
1
Tentando descobrir como substituir um zero inicial por espaço em branco no SED. Tentando obter o dia do mês e substituir com espaço para filtrar alguns dados que eu estou raspando a tela.
O código que tenho é o seguinte:
DoM=$(date --date="-1 day" +"%d")
DoMSp=$(echo $DoM | sed "s/^0*/\ /g"); echo $DoMSp
Mas o problema é quando eu tenho um dia de 1-9 ao invés de imprimir "1" ele imprime "1", não importa quantos "\" eu tente colocar na expressão.
$ DoMSp=$(echo $DoM | sed "s/^0*/\ /g"); echo $DoMSp
1
$ DoMSp=$(echo $DoM | sed "s/^0*/\ \ \ \ \ \ /g"); echo $DoMSp
1
Você não precisa escapar espaço no comando sed
, apenas use aspas duplas no comando echo
para evitar divisão de palavras :
$ DoMSp=$(echo "$DoM" | sed "s/^0*/ /"); echo "$DoMSp"
1
Tags bash text-processing sed