我目前正在使用此脚本移动一些文件并运行其他命令:
@echo off
setlocal disableDelayedExpansion
set "src=sourcePath"
set "dst=destinationPath"
set "search=1080p"
for /r "%src%" %%F in (*%search%*) do (
set "full=%%~fF"
set "name=%%~nxF"
setlocal enableDelayedExpansion
copy "!full!" "%dst%\!name:%search%=!"
endlocal
)
REM call your batch script here to process the copied files
任何人都可以帮助我将其改编为bash,以便我可以在linux中运行它吗?
答案 0 :(得分:1)
如果不知道所有文件名的确切格式,那就更难了,但你可以尝试这样的事情:
#!/bin/bash
files=$(find ./ -type f -name _1080p.*)
for file in ${files[@]} ; do
new_file=$( echo $file | sed -e 's/_1080p//' )
cp $file $new_file
## add further commands on $new_file here.
done
可以通过向find命令添加正则表达式来改进,并调整sed行以根据需要重命名文件。
答案 1 :(得分:0)
所以,如果我了解你,
file2=$(echo $file | sed -e "s/[1080p]//g")
cp /sourcepath/$file destinationpath/$file2
应该在你的声明中使用。