连接文件名时的Unix日期格式(Unix Shell Scripting)

时间:2014-04-22 14:45:24

标签: linux shell unix

必填格式:

START_STOP_AA_07062013.txt

由我创建:

START_STOP_AA_07July13.txt

脚本:

@Script Level :  

$A.Process[0].DateRange.RunDate = [String]::Format("{0:MMddyyyy}", DateTime]::Parse("${RunDate}"));
$A.Process[0].Local.FileName = "START_STOP_AA_${RunDate}.txt"

@Varible Level blank

请帮忙。

1 个答案:

答案 0 :(得分:1)

您需要date命令:

rundate=$(date "+%m%d%Y")
filename="START_STOP_AA_${rundate}.txt"

GNU日期手册:https://www.gnu.org/software/coreutils/manual/html_node/date-invocation.html#date-invocation


让我戴上我的ESP帽子并再试一次: 您将获得START_STOP_AA_07062013.txt,并且您希望"转换"那到START_STOP_AA_06July2013.txt

given=START_STOP_AA_07062013.txt
if [[ $given =~ (.*_)([0-9][0-9])([0-9][0-9])([0-9][0-9][0-9][0-9])(.*) ]]; then
    mon=${BASH_REMATCH[2]}
    day=${BASH_REMATCH[3]}
    year=${BASH_REMATCH[4]}
    date=$( date -d "$mon/$day/$year" "+%d%B%Y" )
    echo "${BASH_REMATCH[1]}${date}${BASH_REMATCH[5]}"
fi

我强烈建议使用日期格式YYYY-MM-DD - 这是唯一一个明智分类且明确无误的日期格式。