相关疑难解决方法(0)

如何grep所有非ASCII字符?

我有几个非常大的XML文件,我试图找到包含非ASCII字符的行.我尝试过以下方法:

grep -e "[\x{00FF}-\x{FFFF}]" file.xml
Run Code Online (Sandbox Code Playgroud)

但是这会返回文件中的每一行,无论该行是否包含指定范围内的字符.

我的语法有错吗?或者我做错了什么?我也尝试过:

egrep "[\x{00FF}-\x{FFFF}]" file.xml 
Run Code Online (Sandbox Code Playgroud)

(模式周围有单引号和双引号).

regex unix unicode grep

348
推荐指数
8
解决办法
25万
查看次数

如何在文件中找到不可打印的字符?

我试图在unix中的数据文件中找出不可打印的字符.代码:

#!/bin/ksh
export SRCFILE='/data/temp1.dat'
while read line 
do
len=lenght($line)
for( $i = 0; $i < $len; $i++ ) {

        if( ord(substr($line, $i, 1)) > 127 )
        {
            print "$line\n";
            last;
        }
done < $SRCFILE
Run Code Online (Sandbox Code Playgroud)

代码无效,请帮我解决上述问题.

grep file find non-ascii-characters

6
推荐指数
2
解决办法
8998
查看次数

查找文件名中包含非 ASCII 字符的文件

有没有办法可以find处理包含非 ASCII 字符的文件?我当然可以使用管道 - 并使用 perl 过滤文件,但为了提高效率,我想将其全部设置为find. 我尝试了以下方法:

find . -type f -name '*[^[:ascii:]]*'
Run Code Online (Sandbox Code Playgroud)

它根本不起作用。

编辑

我现在正在尝试利用

find . -type f -regex '.*[^[:ascii:]].*'
Run Code Online (Sandbox Code Playgroud)

它是一个 emacs 正则表达式并且有[:ascii:]类。但我试图使用的表达方式不起作用。

编辑2

LC_COLLATE=C find . -type f -regex '.*[^!-~].*'
Run Code Online (Sandbox Code Playgroud)

匹配带有非 ASCII 字符的文件(一个完整的巫术......)。但也匹配名称中带有空格的文件。

find non-ascii-characters

0
推荐指数
1
解决办法
2923
查看次数

标签 统计

find ×2

grep ×2

non-ascii-characters ×2

file ×1

regex ×1

unicode ×1

unix ×1