如何在bash脚本中将mm / dd / yy转换为yymmdd格式?

时间:2015-03-04 22:40:31

标签: bash date scripting format

我有一个日期字段来自一个文件,其中有50个日期,格式为mm / dd / yy。我怎样才能将它转换为yymmdd? 我看到类似的问题,但走向相反的方向。我似乎无法以我需要的方式应用它。

日期保存在01/20/72文件中,我需要将它们转换为720120

目前我有$ bDate +%y%m%d作为命令,但这是错误的。 在此先感谢!!

2 个答案:

答案 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'