grep任何非键盘字符

时间:2017-04-05 17:16:07

标签: perl grep

我正在下载BibTex条目,但通常会有输出PDF中不会显示的随机字符,例如àèìòùáéíóúäëïöüâêîôûÿøÀÈÌÒÙÁÉÍÓÚÄËÏÖÜ但此列表并不全面(我无法输入的随机外国字母)。

我尝试过像

这样的事情
grep -nP '[^a-zA-Z0-9\/,=!@#$%^&*()_]' ~/Documents/Library.bib

但必须有一种比这更简单的方法。

如何在键盘上输入的任何字符上grep或使用perl正则表达式(这也是ASCII吗?),例如如果我有一个带有重音的“n”,我可以通过某种方式知道吗?

1 个答案:

答案 0 :(得分:3)

您可以使用与ASCII字符集中的任何字符匹配的POSIX字符类[:ascii:]。要打印所有非ASCII字符的行:

grep -nP '[^[:ascii:]]' ~/Documents/Library.bib

或者,也要突出显示非ASCII字符:

grep --color=auto -nP '[^[:ascii:]]' ~/Documents/Library.bib

有关详情,请参阅Gnu grep手册中的Character Classes and Bracket Expressions和Regular-Expression.info上的POSIX Bracket Expressions

另请参阅:How do I grep for all non-ASCII characters in UNIX