gpt4 book ai didi

linux - 使用 sed 或 awk 重命名多个文件

转载 作者:太空宇宙 更新时间:2023-11-04 05:26:52 25 4
gpt4 key购买 nike

我有一个 DVR 录像机,可以使用特定名称将文件发送到我的 linux ftp 服务器,但我需要更改为其他名称格式,以便它们可以在旧软件上使用。原始文件采用以下格式:

DVR_ch1_principal_20150427094000_20150427100000.dav

DVR=Device Name
ch1=channel#

principal=stream type

20150427094000=starting date in year,month,day,hour,minute,second format

20150427100000=end date in year,month,day,hour,minute,second format

我需要将文件夹中的所有文件修改为以下格式:

ch1_09.04.00-10.00.00.dav

ch1=channel#

09.04.00=starting time in hh.mm.ss

10.00.00=end time in hh.mm.ss

我知道可以使用 sed 或 ark 来完成,但这超出了我的知识范围。

提前致谢

最佳答案

AWK&bash 版本:

for FNAME in $(ls -1 *.dav)
do
channel=$(echo ${FNAME} | awk -F _ '{print $2}')
starttime=$(echo ${FNAME} | awk -F _ '{print $4}')
endtime=$(echo ${FNAME} | awk -F _ '{print $5}')
#
echo ${channel}
#
STARTH=${starttime:8:2}
STARTM=${starttime:10:2}
STARTS=${starttime:12:2}
ENDH=${endtime:8:2}
ENDM=${endtime:10:2}
ENDS=${endtime:12:2}
#
echo ${channel}"_"${STARTH}"."${STARTM}"."${STARTS}"-"${ENDH}"."${ENDM}"."${ENDS}".dav"
mv -f ${FNAME} ${channel}"_"${STARTH}"."${STARTM}"."${STARTS}"-"${ENDH}"."${ENDM}"."${ENDS}".dav"
done

关于linux - 使用 sed 或 awk 重命名多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29896916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com