Regex 如何匹配不可打印字符?

Regex 如何匹配不可打印字符?,regex,awk,Regex,Awk,我有一个与机器编码不同的文件。使用正则表达式时,与当前字符集的不可打印字符不匹配 以下打印0: echo -e "\xfc" | awk '{ print match( $0, "^.*$" ) }' 如何匹配所有字符,包括不可打印的字符?我可以确认它不适用于de_de.UTF-8locale,但de_de.iso88591和C打印a1。我无法告诉您原因,但是[:alpha:][/code>字符类匹配: echo -e "\xfc" | awk '{ print match( $0, "^([

我有一个与机器编码不同的文件。使用正则表达式时,
与当前字符集的不可打印字符不匹配

以下打印0:

echo -e "\xfc" | awk '{ print match( $0, "^.*$" ) }'

如何匹配所有字符,包括不可打印的字符?

我可以确认它不适用于
de_de.UTF-8
locale,但
de_de.iso88591
C
打印a
1
。我无法告诉您原因,但是
[:alpha:][/code>字符类匹配:

echo -e "\xfc" | awk '{ print match( $0, "^([[:alpha:]]|.)*$" ) }'
或者您可以更改该
awk
调用的区域设置:

OLDLANG=$LANG; export LANG=de_DE.iso88591; echo -e "\xfc" | awk '{ print match( $0, "^.*$" ) }'; export LANG=$OLDLANG

另请参见。

我可以确认它不适用于
de_de.UTF-8
locale,但是
de_de.iso88591
C
打印
1
。我无法告诉您原因,但是
[:alpha:][/code>字符类匹配:

echo -e "\xfc" | awk '{ print match( $0, "^([[:alpha:]]|.)*$" ) }'
或者您可以更改该
awk
调用的区域设置:

OLDLANG=$LANG; export LANG=de_DE.iso88591; echo -e "\xfc" | awk '{ print match( $0, "^.*$" ) }'; export LANG=$OLDLANG

另请参见。

在我的Ubuntu上此:
echo-e“\xfc”| awk{print match($0,^.*$”)}
在我的另一个Ubuntu上打印
1
,此打印
0
,因此可能存在本地语言问题。(我想我对两者都有相同的看法)目标是什么?您想简单地确定文件是否有不可打印的字符,还是执行其他操作?@devnull我想要。就像它应该做的那样匹配任何角色!在我的Ubuntu上:
echo-e“\xfc”|awk'{print match($0,^.*$”}
在我的另一个Ubuntu上打印
1
,因此可能存在本地语言问题。(我想我对两者都有相同的看法)目标是什么?您想简单地确定文件是否有不可打印的字符,还是执行其他操作?@devnull我想要。就像它应该做的那样匹配任何角色!嗯,我不知道为什么我到现在还没有接受这个答案。这是你的绿色蜱虫,我的伙伴;)嗯,我不知道为什么我到现在还没有接受这个答案。这是你的绿色蜱虫,我的伙伴;)