Linux 如何grep非键盘字符?
我试图使用Linux 如何grep非键盘字符?,linux,grep,Linux,Grep,我试图使用grep将所有μs放在一个目录下,不幸的是,μ不是键盘字符,你有什么想法吗? 顺便说一句,对于普通的键盘单词,我可以使用 find/-type f-print | xargs grep-inE 2>/dev/null 查找所有包含搜索词的纯文本文件。您介意使用sed而不是grep吗 sed -n '/\xb5/p' 但是,grep也应该起作用: grep -P '\xb5' 在Bash中,可以使用shell的引用功能传递非ASCII内容。为了正确识别搜索字符串,我们需要知道您正在进
grep
将所有μs
放在一个目录下,不幸的是,μ
不是键盘字符,你有什么想法吗?
顺便说一句,对于普通的键盘单词,我可以使用
find/-type f-print | xargs grep-inE 2>/dev/null
查找所有包含搜索词的纯文本文件。您介意使用sed而不是grep吗
sed -n '/\xb5/p'
但是,grep也应该起作用:
grep -P '\xb5'
在Bash中,可以使用shell的引用功能传递非ASCII内容。为了正确识别搜索字符串,我们需要知道您正在进行grepping的文件的编码。如果它们在UTF-8中,则需要与在ISO-8859-1或UTF-16中不同的搜索字符串 如果shell的区域设置与文件的内容一致,那么这一切都应该是开箱即用的,但这里有几个解决方法
# grep ISO-8859-1 \xB5
grep $'\xB5' file
# grep UTF-8 U+03BC
grep $'\xCE\xBC' file
# grep UTF-16be U+03BC
grep $'\x03\xBC' file
# grep UTF-16le U+03BC
grep $'\xBC\x03' file
一些较旧版本的grep
存在非ASCII字符问题;作为一种变通方法,您还可以使用Perl
perl -ne 'print if m/\u03BC/' file
您可能需要玩弄一下才能让它工作。嗨,弗拉德,谢谢您的回复。我尝试了你的两种方法,我得到了很多返回结果,其中一些是不需要的。然而,我可以根据返回结果使用管道到grep来获得我想要的结果。我想我应该说:grep-P'\xb5s'(到grepμs,而不仅仅是μ);)