Unix脚本将我的文件名从file_epoctimestamp重命名为file_timestamp

时间:2016-03-16 17:48:57

标签: shell unix sh epoch

我的文件名为Transaction-0-0-1458049146806.txt,我想将其重命名为正常的时间戳,如Transaction-2016-03-16?

以及在UNIX脚本中如何将Sun Sep 26 14:53:26 CDT 48173转换为YYYY-MM-DD或YY-MM-DD

任何帮助?

2 个答案:

答案 0 :(得分:1)

试试这个:

date -d@1458049146 "+%Y-%m-%d"

答案 1 :(得分:0)

old=Transaction-0-0-1458049146.txt

stamp=`echo $old | sed -e 's/^.*-\([0-9][0-9]*\).txt/\1/g'`
horo=`date -d @$stamp +'%Y-%m-%d'`
new="`echo $old | cut -d"-" -f1`-$horo.`echo $old | cut -d'.' -f2`"

echo $new

但是,最好使用:

horo=`date -d @$stamp +'%Y-%m-%d_%H%M%S'`

以避免覆盖一天内创建的文件