找到不同目录中的 .srt 文件并更改字符编码

找到不同目录中的 .srt 文件并更改字符编码

我有一个很棒的脚本,用于转换 srt.files 中的编码。我还为该脚本创建了一个别名,这样我就可以进入要运行该脚本的目录并使用我的别名konvert

但是,我现在遇到以下情况:有超过 20 个目录包含 srt.files。我应该怎么做才能仅用一个命令将我的脚本指向所有这些目录?

幸运的是,所有这些目录都在一个主目录内,所以我相信应该有一个简单的方法来做到这一点。

脚本内容

#!/bin/bash for file in *.srt; do iconv -f CP1250 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file"; done 

答案1

很容易实现没有你的脚本通过使用以下命令行(使用应用程序recode而不是直接iconv),它应该从 srt 文件的根目录运行:

find . -name '*.srt' -type f -exec bash -c 'recode -v CP1250..UTF-8 "$0"' {} \;

命令行搜索递归地针对所有 srt 文件,当找到每个文件时,recode将对每个文件进行操作,将字符编码从 CP1250 更改为 UTF-8。通过recode编码更改,不需要笨拙的文件名转换iconv...

命令行有多酷啊:)

相关内容