使用grep查找带有重音字符的文件名或搜索词中的ñ

时间:2012-07-28 04:47:00

标签: grep

当我的搜索词包含西班牙语字符(例如重音元音或“ñ”(例如bebé,caña))时,我尝试使用(e)grep列出目录中的文件失败。对于重音元音,如果我使用非重音元音,搜索的工作方式如下:

$ ls | egrep 'bebe'
8 bebé
IMQ_bebé1.wav
IMQ_bebé2.wav
IMQ_bebé3.wav
IMQ_bebé4.wav
IMQ_bebé5.wav
IMQ_bebé6.wav

但是,如果我在搜索词中包含重音元音,(例如$ ls | egrep 'bebé') 我一无所获。

在搜索词中使用非重音元音的原因是不可能的,因为这是一个较大的shell脚本的一部分,它从文本文件中获取它的搜索词。此外,使用“ñ”搜索条件不起作用,也不仅仅使用“n”。另外,我确信必须有办法做到这一点!

我正在使用Mac OS X 10.6.8。我的语言环境如下:

$ locale
LANG="en_CA.UTF-8"
LC_COLLATE="en_CA.UTF-8"
LC_CTYPE="en_CA.UTF-8"
LC_MESSAGES="en_CA.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_TIME="en_CA.UTF-8"
LC_ALL=

1 个答案:

答案 0 :(得分:1)

您可以使用iconv来清除列表并匹配ascii模式:

ls | iconv -f utf8 -t ascii//TRANSLIT | egrep 'bebe'