Cmd 在文本文件中选择一个值
我在一个文本文件中有一个+500000行的表格,我需要选择那些符合条件的行。它的头列是“Quantity”,我想得到的值是12(整数值)。 我使用Windows命令行Cmd 在文本文件中选择一个值,cmd,Cmd,我在一个文本文件中有一个+500000行的表格,我需要选择那些符合条件的行。它的头列是“Quantity”,我想得到的值是12(整数值)。 我使用Windows命令行 据我所知,cmd不可能做到这一点 您可以使用findstr命令在文本文件中查找某些特定的字符串,但cmd无法识别列。根据注释,您希望删除第二个值(word)为12的每一行。即使使用findstrs残缺的REGEX支持,也可以做到这一点,这使它成为一个简单的单行命令: findstr /rvc:"^[^ ]* 12 " input
据我所知,cmd不可能做到这一点
您可以使用findstr命令在文本文件中查找某些特定的字符串,但cmd无法识别列。根据注释,您希望删除第二个值(word)为
12
的每一行。即使使用findstr
s残缺的REGEX支持,也可以做到这一点,这使它成为一个简单的单行命令:
findstr /rvc:"^[^ ]* 12 " input.txt>output.txt
findstr
开关:r
:正则表达式支持,v
排除结果,c
:“literal”(由于空格需要)
正则表达式:^
:行的开头[^]
:不是(^
)空格(
)的任何字符([]
)*
:可能更多这样的12
:space-12-space
结果查找以一个或多个非空格字符开头,后跟空格、a12
和另一个空格的任何行。(或使用/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
。我看到了输出,但仍然添加了一个日志以进行验证。