我有一个很棒的脚本,用于转换 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
...
命令行有多酷啊:)