以下を試しても問題ありません。
$ date '+%y%m' | sed 's/.\(.*\)/\1/'
906
しかし、変数に保存しようとすると何も保存されないようです。
$ dd=`date '+%y%m' | sed 's/.\(.*\)/\1/'`
$ echo "$dd"
以下を使用せずに同じ結果が得られることがわかりますsed
。
$ dd=`date '+%y%m'`
$ echo ${dd: -3}
906
しかし、なぜ機能しないのか疑問に思いますsed
。
答え1
コマンドを変数名として使用しないでください。dd
ディスク破壊者です。man dd
別の変数名または類似の名前を試してみてください。
d=`date '+%y%m' | sed 's/.\(.*\)/\1/'`
echo $d
おそらくこのマニュアルのこの部分bash
も役に立ちます。
man bash | sed -n '/^DEFINITIONS/,/^SHELL GRAMMAR/p' | less