我有一个日期字段来自一个文件,其中有50个日期,格式为mm / dd / yy。我怎样才能将它转换为yymmdd? 我看到类似的问题,但走向相反的方向。我似乎无法以我需要的方式应用它。
日期保存在01/20/72文件中,我需要将它们转换为720120
目前我有$ bDate +%y%m%d作为命令,但这是错误的。 在此先感谢!!
答案 0 :(得分:1)
字符串操作:bash正则表达式就足够了:
date="04/13/06"
d='[[:digit:]]'
if [[ $date =~ ($d$d)/($d$d)/($d$d) ]]; then
newdate=${BASH_REMATCH[3]}${BASH_REMATCH[1]}${BASH_REMATCH[2]}
fi
echo $newdate
060413
如果您反复这样做,请将其设为功能:
mdy2ymd() {
local d='[[:digit:]]' newdate
if [[ $1 =~ ($d$d)/($d$d)/($d$d) ]]; then
newdate=${BASH_REMATCH[3]}${BASH_REMATCH[1]}${BASH_REMATCH[2]}
fi
echo $newdate
}
答案 1 :(得分:0)
您可以使用sed
及其内部正则表达式存储变量
echo "01/20/72" | sed -r 's#(..)/(..)/(..)#\3\1\2#g'