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

How do I convert mm/dd/yy to yymmdd format in bash script?

我有一个文件中的日期字段,其中包含 mm/dd/yy 格式的 50 个日期。如何将其转换为 yymmdd? 我见过类似的问题,但方向相反。我似乎无法按照我需要的方式应用它。

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

目前我有 $bDate +%y%m%d 作为命令,但它是错误的。 提前致谢!!

字符串操作: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 [[  =~ ($d$d)/($d$d)/($d$d) ]]; then 
       newdate=${BASH_REMATCH[3]}${BASH_REMATCH[1]}${BASH_REMATCH[2]}
    fi
    echo $newdate
}

您可以使用 sed 及其内部正则表达式存储变量,例如 echo "01/20/72" | sed -r 's#(..)/(..)/(..)##g'