( egmont | 2011. 09. 07., sze – 22:17 )

Ezt próbáld ki:
echo $file | LC_ALL=C sed 's/[^A-Za-z0-9.]/_/g'

Szerintem az a bibi, hogy a sed mivel UTF-8 környezeti változókkal fut, ezért feltételezi az inputjáról hogy az valid UTF-8, márpedig nem az. Így viszont ASCII-t fog feltételezni. Ha ez sem megy (mert a 128 fölötti byte-okon kiakad), akkor LC_ALL=en_US.ISO8859-1 vagy valami ilyesmi...