我有一些非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/-/"
任何线索为什么不工作?
使用您系统上可能具有的prename命令 . 它可能被称为 rename ,但该名称的another program的工作方式不同 .
rename
prename 's/[^a-zA-Z0-9]/-/' Argi*
你想要什么
在文件名中用' - '替换这些字符
我想你只想获得没有这些字符的输出而不是重命名原始文件 . 因为你的sed命令根本没有重命名 .
然后你可以试试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
这不会用“ - ”代替那些字母,而是用ASCII代替 .
2 回答
使用您系统上可能具有的prename命令 . 它可能被称为
rename
,但该名称的another program的工作方式不同 .你想要什么
我想你只想获得没有这些字符的输出而不是重命名原始文件 . 因为你的sed命令根本没有重命名 .
然后你可以试试iconv:
这不会用“ - ”代替那些字母,而是用ASCII代替 .