批量创建目录及删除LRF文件
bash -c 'set -euo pipefail; shopt -s nullglob nocaseglob; mkdir -p Music Davinc Result; for f in *.lrf; do [ -e "$f" ] || break; rm -f -- "$f"; done; f(){ local ext="$1" d="$2"; local a=(*."$ext"); [[ ${#a[@]} -gt 0 ]] || return 0; mkdir -p -- "$d"; for x in "${a[@]}"; do [[ -f "$x" ]] && mv -n -- "$x" "$d"/; done; }; f srt SRT; f dng DNG; f jpg JPG; f jpeg JPG; f mp4 Video;'
修改交付成片文件名
使用要求:需要安装mediainfo CLI版本获取媒体文件数据
下载地址:https://mediaarea.net/en/MediaInfo
TITLE="西安高新云雾缭绕"; for f in *; do [ -f "$f" ] || continue; ext="${f##*.}"; ext_lc=$(echo "$ext" | tr '[:upper:]' '[:lower:]'); if [[ "$ext_lc" != "mp4" && "$ext_lc" != "mov" ]]; then continue; fi; if echo "$f" | grep -Eq "_[0-9]{4}x[0-9]{3,4}_" && echo "$f" | grep -Eq "_v[0-9]+\.[0-9]+"; then echo "已命名,跳过:$f"; continue; fi; dim=$(mediainfo --Inform="Video;%Width%x%Height%" "$f"); [ -z "$dim" ] && dim="UNKNOWN"; fps_raw=$(mediainfo --Inform="Video;%FrameRate%" "$f"); fps=$(awk -v r="$fps_raw" 'BEGIN{ if(r==""||r=="N/A"){print "0.000"} else printf("%.3f",r) }'); vcodec=$(mediainfo --Inform="Video;%Format%" "$f" | tr -d ' '); bits=$(mediainfo --Inform="Video;%BitDepth%" "$f"); [ -z "$bits" ] && bits="8"; ach=$(mediainfo --Inform="Audio;%Channel(s)%" "$f" | head -n1); [ -z "$ach" ] && ach="0"; d=$(mediainfo --Inform="General;%Encoded_Date%" "$f" | sed -E 's/.*([0-9]{4})[-: ]?([0-9]{2})[-: ]?([0-9]{2}).*/\1\2\3/'); [ -z "$d" ] && d=$(stat -f "%Sm" -t "%Y%m%d" "$f"); base="$(basename "$f" ".$ext")"; if echo "$f" | grep -Eq "_v[0-9]+\.[0-9]+"; then oldv=$(echo "$f" | grep -Eo "v[0-9]+\.[0-9]+" | tail -n1 | sed 's/v//'); newv=$(awk -v v="$oldv" 'BEGIN{printf "v%.1f",v+0.1}'); else newv="v1.1"; fi; new="${TITLE}_${d}_${dim}_${fps}fps_${vcodec}${bits}b_${ach}ch_${newv}.${ext_lc}"; new=$(echo "$new" | tr ' /:,*?\"<>|\\' '_' | sed 's/__/_/g'); if [ "$f" != "$new" ]; then mv "$f" "$new" && echo "已重命名:$f -> $new"; fi; done