pedja
pedja

Reputation: 3413

Linux Shell - Replacing string with other string inside files

I have a problem with this linux shell script.

#! /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

I know this isnt the best way to do this but thats all i can do with my knowlage

As you can see it finds all srt files and then replaces all "č" charactes with "c". But it doesnt work with files i downloaded

However when i make a new file and write "č" inside (with my keyboard), it replaces it as it should. I dont understand why?

Upvotes: 0

Views: 458

Answers (1)

nullpotent
nullpotent

Reputation: 9260

I think we discovered the cause, now the fix:

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

There's also a dirty way

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

I tried iconv tool which is supposed to do the conversion, but it didn't help.

Upvotes: 3

Related Questions