bru*_*e01 3 unix command-line grep
试图从命令行中获得更多:
我有一个文件:
CHR25 1192279 Y Exonic NA exon 2 [1/1] 1192145 1192322
CHR25 1192279 Y Exonic NA CDS 2 [1/1] 1192145 1192322
CHR25 1739394 Y Exonic NA CDS 2 [1/2] 1739294 1739456
Run Code Online (Sandbox Code Playgroud)
我希望根据第2列获得独特的线条.我已经完成了
cat file | cut -f 2 | uniq > grepfile
Run Code Online (Sandbox Code Playgroud)
但我不确定如何使用grep -f我之前的每条线路获得一场比赛.使用-m1 or | head -n 1仅给出第一个匹配的行.我希望第一行匹配'grepfile'中的每一行.
期待答案=)
这个awk命令通过构建已经看到的第二个字段值的关联数组来工作.
awk '!s[$2]++'
Run Code Online (Sandbox Code Playgroud)
关联数组被调用s.该表达式查找$ 2(输入行的第二列)并应用一个postincrement,它将在第一次调用时返回0,之后返回非零值.然后我反转它,第一次看到每个$ 2产生1,然后每次产生0.如果选择表达式为true,则awk的默认操作是打印.
当线数大到足以再次回到0时,请注意.