Cmd 在文本文件中选择一个值

Cmd 在文本文件中选择一个值,cmd,Cmd,我在一个文本文件中有一个+500000行的表格,我需要选择那些符合条件的行。它的头列是“Quantity”,我想得到的值是12(整数值)。 我使用Windows命令行 据我所知,cmd不可能做到这一点 您可以使用findstr命令在文本文件中查找某些特定的字符串,但cmd无法识别列。根据注释,您希望删除第二个值(word)为12的每一行。即使使用findstrs残缺的REGEX支持,也可以做到这一点,这使它成为一个简单的单行命令: findstr /rvc:"^[^ ]* 12 " input

我在一个文本文件中有一个+500000行的表格,我需要选择那些符合条件的行。它的头列是“Quantity”,我想得到的值是12(整数值)。 我使用Windows命令行


据我所知,cmd不可能做到这一点


您可以使用findstr命令在文本文件中查找某些特定的字符串,但cmd无法识别列。

根据注释,您希望删除第二个值(word)为
12
的每一行。即使使用
findstr
s残缺的REGEX支持,也可以做到这一点,这使它成为一个简单的单行命令:

findstr  /rvc:"^[^ ]* 12 " input.txt>output.txt
findstr
开关:
r
:正则表达式支持,
v
排除结果,
c
:“literal”(由于空格需要)

正则表达式:
^
:行的开头
[^]
:不是(
^
)空格(
)的任何字符(
[]

*
:可能更多这样的
12
:space-12-space

结果查找以一个或多个非空格字符开头,后跟空格、a
12
和另一个空格的任何行。(或使用
/v
忽略它们)

我的
cmd
会话记录:

>type t.txt
123.54 12 1 5
123.52 12 1 4
12.52 12 1 3
423.05 11 2 4
41 10 1 6
12 22 33 4
411,26 5 12 4


>findstr  /rvc:"^[^ ]* 12 " t.txt>output.txt

>type output.txt
423.05 11 2 4
41 10 1 6
12 22 33 4
411,26 5 12 4


>findstr  /rc:"^[^ ]* 12 " t.txt>output.txt

>type output.txt
123.54 12 1 5
123.52 12 1 4
12.52 12 1 3

>

给我们看几行你的文本文件。我上传了一个我的文本文件样本,以便ypu想要每一行,它的第二列中有一个
12
(用空格分隔的列)?是的。数据是用空格分隔的。从这个表中,我必须选择Quantity=12,然后获得所有具有该值的行(我将删除它们)使用正则表达式会有两个问题。提示:
sed
和/或
grep
。我看到了输出,但仍然添加了一个日志以进行验证。