Quando tento o seguinte, não há problema:
$ date '+%y%m' | sed 's/.\(.*\)/\1/'
906
Mas quando tento armazená-lo em uma variável parece que nada é armazenado:
$ dd=`date '+%y%m' | sed 's/.\(.*\)/\1/'`
$ echo "$dd"
Eu sei que posso obter o mesmo resultado não usando sed
:
$ dd=`date '+%y%m'`
$ echo ${dd: -3}
906
mas estou curioso para saber por que não funciona com sed
.
Responder1
Não use comandos como nome de variável. dd
é o seu destruidor de discos, veja man dd
e tente outro nome de variável ou algo parecido com isto:
d=`date '+%y%m' | sed 's/.\(.*\)/\1/'`
echo $d
Talvez esta parte do bash
manual também seja útil:
man bash | sed -n '/^DEFINITIONS/,/^SHELL GRAMMAR/p' | less