0

削除したい非ASCII文字のファイルがいくつかあります。ファイル名でこれらの文字を「-」に置き換えようとしていますが、機能しません。

これが私の命令です

ls Argi* | xargs -I file basename file '.eps' | sed "s/[^a-zA-Z0-9]/-/"

も試しました:

ls Argi* | xargs -I file basename file '.eps' | sed "s/\W/-/"

なぜそれが機能しないのですか?

4

2 に答える 2

3

what do you want for

replace those characters with '-' in the filenames

I guess you just want to get an output without those characters instead of renaming the original file. because your sed command doesn't do the rename at all.

then you could try iconv:

kent$  l
-rw-r--r-- 1 kent kent  0 2012-07-03 12:20 Argiö.eps
-rw-r--r-- 1 kent kent  0 2012-07-03 12:20 Argiü.eps


kent$  ls Argi*|iconv -f utf8 -t ascii//TRANSLIT 
Argio.eps
Argiu.eps

this would not replace those letters with "-", but with ASCII.

于 2012-07-03T10:37:18.870 に答える
0

システムにあると思われるコマンドを使用prenameします。と呼ばれる場合がありますが、その名前で動作が異なる別のプログラムrenameがあります。

prename 's/[^a-zA-Z0-9]/-/' Argi*
于 2012-07-03T11:12:26.057 に答える