0

このLinuxシェルスクリプトに問題があります。

#! /bin/bash
find /sdcard/ -type f -iname "*.srt" -print >> /sdcard/files 
count=`wc -l /sdcard/files |cut -d'/' -f1` 
for (( c=1; c<=$count; c++ ))
do
line=`sed -n ''$c'p' /sdcard/files`
cat "$line" | sed -e 's/č/c/g' > "$line".srt""
rm "$line"
done
rm /sdcard/files

私はこれがこれを行うための最良の方法ではないことを知っていますが、それは私が私の知識でできるすべてです

ご覧のとおり、すべてのsrtファイルが検索され、すべての「č」文字が「c」に置き換えられます。しかし、ダウンロードしたファイルでは機能しません

ただし、新しいファイルを作成し、(キーボードを使用して)内部に「č」と書き込むと、正常に置き換えられます。理由がわかりませんか?

4

1 に答える 1

3

私たちは原因を発見したと思います、今修正:

vim somefile.srt -c ":set bomb" -c ":set fileencoding=utf-8" -c ":wq"

汚い方法もあります

echo -e "\xC2\xA0" >> somefile.srt

変換を行うはずのツールを試しiconvましたが、役に立ちませんでした。

于 2012-05-29T14:38:23.477 に答える