2

当我的搜索词包含西班牙语字符(例如重音元音或“ñ”(例如 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=
4

1 回答 1

1

您可以使用 iconv 取消列表的重音并匹配 ascii 模式:

ls | iconv -f utf8 -t ascii//TRANSLIT | egrep 'bebe'
于 2012-07-28T05:02:13.720 回答