在其他操作之后,我实际上是cat
生成一个文件,该文件以制表符分隔的格式输出。在
有列
$ cat file.txt
longstring1:with:semicolons ERFVBNMNBFGHNMKJHNMH 1:2:2:2:2 -
secondline:is:here VHNBVFTYHNBGHJMKJHJMN 0:0:0:0:0 -
third:canbefound:here VFTYHBVFGHJNJGVGHJKMNGB 4:1:0:1:0 -
(1)将此输出管道化到grep
中,我如何才能只对第一列进行grep以便
在本例中,由于我将在cat file.txt
的管道输出的第一列的每一行上grep
,文件{
(2)是否有一种方法可以根据某些条件使用命令行工具在第一列上执行grep?在
我只想在第三列包含非零元素时grep第一列行。这是可能的,还是应该使用一些脚本语言(例如Python)?在
在这种情况下,操作将类似于
$ cat file.txt | grep first_column if some_condition > new_out.txt
在本例中,new_out.txt
将只包含第一行和第三行。在
awk
去营救。在情况(1),根据第一列(
$1
)中的值进行筛选:(如果第一列
$1
包含模式/字符串here
,则打印整行。)第(2)种情况下,根据第一列中的值进行筛选,但仅当第三列至少包含一个非零元素时:
^{pr2}$(除了上一个例子中的条件外,我们还确保第三列}。)
$3
包含模式:<one_or_more_digits_except_zero>:
,在值的开始和结尾省略了起始冒号{使用awk
如果要搜索第一列中的任何内容,请使用说出单词,然后可以将其修改为:
^{pr2}$相关问题 更多 >
编程相关推荐