重命名目录中 .ts 文件中的所有文件 我的 echo 命令有效,但如果我尝试将其设为新变量则无效。
#!/bin/sh
for file in "${1}"/*.ts; do
echo ${file} | sed -e 's|.ts|.mkv|'
new_name=${file} | sed -e 's|.ts|.mkv|'
done
答案1
最简单的解决方案是告诉您将分配更改为:
new_name=$( echo ${file} | sed -e 's|.ts|.mkv|' )
但更好的解决方案是:
new_name="${file%.ts}.mkv"
答案2
find . -maxdepth 1 -type f -name '*.ts' -exec rename .ts .mkv {} "+"
在包含文件的目录中运行它.ts
。
答案3
rename
就是您要找的:
rename '.ts' '.mkv' "${1}/*.ts"
答案4
#!/bin/sh
for file in "${1}"/*.ts; do
mv "${file}" "$(basename "${file}").mkv"
done