无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5414|回复: 61
打印 上一主题 下一主题

[求助] 命令如何查找有中文字符的行

  [复制链接]
跳转到指定楼层
1#
发表于 2022-5-19 07:38:13 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式


命令如何查找有中文字符的行

test.txt内容如下:

Meng said the commission will step
one 129 ok
two78kl
three99 88 ui
thre99 88 ui6
bk高兴oewp
89爵士io
12听99
2#
 楼主| 发表于 2022-5-19 09:25:18 | 显示全部楼层
dos时代菜鸟 发表于 2022-5-19 09:18
先做个字典包含 键盘常规字符,然后 ,读取文件每一行,逐行逐字符判断,如果该字符不在 字典中,就 ...

谢谢!

我用findstr 的下面的参数都很难实现查找有中文字符的行
[class]
[^class]
[x-y]
回复

使用道具 举报

3#
 楼主| 发表于 2022-5-19 20:17:17 | 显示全部楼层
szwp 发表于 2022-5-19 12:13
findstr /r /c:"[^- '!-Z]" text.txt

查找效率确实高,原版boot.wim镜像的文件列表中,随意加入一些中文,几乎秒查出带中文的行

命令行中的"Z",不能换成小写的"z",否则,凡是有大写Z的行也要被查找出来,这是什么原因?

点评

如果是文件列表,则范围可以更小了,有不少字符是不能作文件名的。 不知道你要Z还是z,将需求说得更明确些好。这个是用了[^class],当然[class]也可实现。  详情 回复 发表于 2022-5-20 08:06
回复

使用道具 举报

4#
 楼主| 发表于 2022-5-20 08:46:44 | 显示全部楼层
szwp 发表于 2022-5-20 08:06
如果是文件列表,则范围可以更小了,有不少字符是不能作文件名的。
不知道你要Z还是z,将需求说得更明确 ...

谢谢!

我是需要在文本中只查找带有中文字符的行

我昨天测试的时候,把Z写成z了,结果是没有中文字符的行但有大写的的Z的行也被查找出来了

点评

俺喜欢复制粘贴,省事啊。  详情 回复 发表于 2022-5-20 09:03
回复

使用道具 举报

5#
 楼主| 发表于 2022-5-20 09:25:57 | 显示全部楼层
szwp 发表于 2022-5-20 09:09
就一楼给的测试数据,用 findstr /r /c:"[^ a-z0-9]" text.txt 就可以了,这样是不是更容易理解些?

谢谢!

这个相对容易理解了,我昨天也写过这样的命令,但^和a-z0-9之间没空一格,导致所有行查出来了
^后空一格是什么意思

另外,你昨天的命令是不是更适合任何内容的文本,不一定是文件列表的文本,比如dism的log日志

点评

你要什么东西,就提供原始和结果的附件。正则是有书的,需要时间去掌握。  详情 回复 发表于 2022-5-20 09:41
回复

使用道具 举报

6#
 楼主| 发表于 2022-5-20 09:53:37 | 显示全部楼层
szwp 发表于 2022-5-20 09:41
你要什么东西,就提供原始和结果的附件。正则是有书的,需要时间去掌握。

谢谢,不好意思,麻烦了
关于字符集里字母的大小写也影响结果
test.txt:
Meng said the commission will step
one 129 ok
two78kl
three99 88 ui
thre99 88 ui6
中有粉因
bk高兴oewp
89爵士io
12听99
jkloppDZ
E:\win10pe10586制作\新建文件夹>findstr /r /c:"[^ A-z0-9]" test.txt
Meng said the commission will step
中有粉因
bk高兴oewp
89爵士io
12听99
jkloppDZ
E:\win10pe10586制作\新建文件夹>findstr /r /c:"[^ a-Z0-9]" test.txt
中有粉因
bk高兴oewp
89爵士io
12听99

E:\win10pe10586制作\新建文件夹>findstr /r /c:"[^ A-Z0-9]" test.txt
Meng said the commission will step
中有粉因
bk高兴oewp
89爵士io
12听99


E:\win10pe10586制作\新建文件夹>findstr /r /c:"[^ a-z0-9]" test.txt
中有粉因
bk高兴oewp
89爵士io
12听99
jkloppDZ

点评

没看出啥问题来,你要哪种结果呢?  详情 回复 发表于 2022-5-20 09:56
回复

使用道具 举报

7#
 楼主| 发表于 2022-5-20 10:15:25 | 显示全部楼层
szwp 发表于 2022-5-20 09:56
没看出啥问题来,你要哪种结果呢?

我不是否定你写的命令,我的意思是:比如我有时候没注意字符集里字母的大小写,会影响我只查找带中文字符的行的结果

即使就用这个命令,findstr /r /c:"[^ a-z0-9]",也把带Z的英文行查找出来了,而我只想查找有中文字符的行
test.txt:
Meng said the commission will step
one 129 ok
two78kl
three99 88 ui
thre99 88 ui6
中有粉因
bk高兴oewp
89爵士io
12听99
jkloppDZ



E:\win10pe10586制作\新建文件夹>findstr /r /c:"[^ a-z0-9]" test.txt
中有粉因
bk高兴oewp
89爵士io
12听99
jkloppDZ


谢谢!,麻烦了

点评

这东西得你自己试的啊,你要忽略大小写在样本里提供也方便别人写啊,牙膏是挤不完的。 findstr /rc:"[^ a-z0-9A-Z]" text.txt  详情 回复 发表于 2022-5-20 10:34
回复

使用道具 举报

8#
 楼主| 发表于 2022-5-20 10:41:04 | 显示全部楼层
szwp 发表于 2022-5-20 10:34
这东西得你自己试的啊,你要忽略大小写在样本里提供也方便别人写啊,牙膏是挤不完的。

findstr /rc:"[ ...

非常感谢

我水平有限,不明其理只能胡乱测试,所以伸手向各位坛友求助

点评

findstr /ric:"[^ a-z0-9]" text.txt findstr /ric:"[^ A-z0-9]" text.txt findstr /ric:"[^ a-Z0-9]" text.txt findstr /ric:"[^ A-Z0-9]" text.txt 正则写法不是唯一的,多试好为,复制粘贴可以少走弯路。  详情 回复 发表于 2022-5-20 10:46
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-16 20:10

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表