Board logo

标题: [文本处理] [已解决]批处理如何提取文本中以空格分隔的字段数量/数目/个数等于指定数值的行 [打印本页]

作者: qzwifi    时间: 2012-10-6 15:33     标题: [已解决]批处理如何提取文本中以空格分隔的字段数量/数目/个数等于指定数值的行

本帖最后由 pcl_test 于 2016-8-11 17:36 编辑

例:

文本a.txt内容为:

01 02 03 04 05 06 07
01 02 03 04 05 06 07 08
01 02 03 04 05 06 07 08 09 10
01 02 03 04 05 06 07 08 09 10 11 12
01 02 03 04 05 06 07 08 09 10 11 12 13
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

文本里面有很多数字行,行里面出现的数字个数不等。求批处理代码直接从该文本提取出现12个数的行保存为b.txt


比如:

01 02 03 04 05 06 07                                             这一行  7个数 大小是20字节
01 02 03 04 05 06 07 08                                        这一行  8个数 大小是23字节
01 02 03 04 05 06 07 08 09 10                              这一行 10个数 大小是29字节
01 02 03 04 05 06 07 08 09 10 11 12                    这一行 12个数 大小是35字节
01 02 03 04 05 06 07 08 09 10 11 12 13               这一行 13个数 大小是38字节
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15     这一行 15个数 大小是44字节

简单的理解就是一份数字文本里面有很多行,行里出现的数字个数不等。求列出现12个数字的行,保存b.txt

因为行出现的数字个数不同,所以就有一个出现多少数字固定等于这一行的大小是多少字节或kb,上面提及的大小字节就是想以这个思路来得出。

或者高手们有别的方法可以直接得出等于12个数字的行都可以的。。。
作者: forfiles    时间: 2012-10-6 18:53

  1. gawk "NF==12" a.txt >b.txt
复制代码

作者: qzwifi    时间: 2012-10-6 19:44

楼上的代码不行。

我的本意是一份文本里面有很多数字行,每一行出现的数字个数有相同也有不同。要把所有出现12个数字的行列出来保存为b.txt

以前在论坛上看过用每一行的大小字节或KB数来实现的。。求帮忙!谢谢。。
作者: forfiles    时间: 2012-10-6 20:28

回复 3# qzwifi


报错信息是什么?
作者: qzwifi    时间: 2012-10-6 20:36

回复 4# forfiles


    forfiles 你好,没有报错信息。运行后b.txt里面没有生成何任数据。也就是没有保存想要有结果。
作者: forfiles    时间: 2012-10-6 21:44

回复 5# qzwifi


    哪个版本的gawk?
作者: qzwifi    时间: 2012-10-6 22:18

本帖最后由 qzwifi 于 2012-10-6 22:24 编辑

回复 6# forfiles


    forfiles你好,不知如何看是什么版本,而且您是否再看看题义,感觉并不是您所提供的这个命令可以处理出来的。或者您再完善一下代码。谢谢!
作者: apang    时间: 2012-10-6 22:34

回复 7# qzwifi

gawk是第三方工具,可在论坛搜索下载。。。
作者: forfiles    时间: 2012-10-6 22:39

回复 7# qzwifi


到这里下载一个gawk.exe放到C:\windows\system32\下面
http://www.bathome.net/thread-1114-1-1.html
作者: forfiles    时间: 2012-10-6 22:40

查看版本的方法:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Test>gawk --version
GNU Awk 3.1.6
Copyright (C) 1989, 1991-2007 Free Software Foundation.

作者: qzwifi    时间: 2012-10-6 22:45

回复 10# forfiles


    已搞定,谢谢forfiles大哥。。。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2