Linux Shell - 用文件中的其他字符串替换字符串

时间:2012-05-29 14:03:39

标签: linux shell

我的linux shell脚本有问题。

#! /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”替换所有“č”字符。但它不适用于我下载的文件

然而,当我创建一个新文件并在里面写“č”(用我的键盘)时,它会替换它应该的。我不明白为什么?

1 个答案:

答案 0 :(得分:3)

我认为我们发现了原因,现在是修复:

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

还有一种肮脏的方式

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

我尝试了应该进行转换的iconv工具,但它没有帮助。