renaming many Chinese files

Ramiro Caso misha_78 at
Tue Mar 24 15:19:57 PDT 2009

Just a very quick thought (the first that pops into my mind): you could
see which are the western characters that appear in the names, and then
use sed to substitute all non-matching characters with nothing,
something like:

for i in *.jpg; do b="`echo $i | sed 's/[^CHAR_SET]//g'`"; mv $i $b; done

forgetting, obviously, to add . to the CHAR_SET, something like:
[^a-zA-Z0-9.]; if you figure out a less clumsy way, please, share!!)
I'm guessing that the initial 'P123' is just an example, or this will
horribly backfire. But I'm really, REALLY, taking a shot in the dark
here... (if you already thought of this, and it just doesn't work,
sorry for the useless pitch)

> Date: Tue, 24 Mar 2009 15:57:51 -0400
> To: questions at
> From: david+dated+1238356671.fa5de5 at
> CC: 
> Subject: renaming many Chinese files
> I have hundreds of jpg images where each image is named P123****.jpg
> where the **** are chinese characters. I can't open the file - it
> has to be renamed before I can open it. Evening if I could open it
> I don't want the Chinese part as the name.
> Each file starts with 3 or four western characters and then has 3 or
> four chinese characters, before the western .jpg extension.
> I want to to test each filename character by character
> to see if it is western, and then when the first Chinese Character is 
> found, have it simply rename the file to the 3 or four western-character 
> name + .jpg
> I can write most of the script but I don't know how to test for 
> western and/or Chinese characters.
> I could run a script that would simply rename all the files to 
> a number in sequential order but I would rather use the existing
> starting name of the file if possible.
> _______________________________________________
> freebsd-questions at mailing list
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at"

Encontrá el auto de tus sueños en MSN

More information about the freebsd-questions mailing list