gpt4 book ai didi

unix - grep -f 只返回第一个匹配(许多)

转载 作者:行者123 更新时间:2023-12-01 09:34:13 28 4
gpt4 key购买 nike

尝试从命令行中获得更多信息:

我有一个文件:

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

我想根据第 2 列获得唯一行。我已经完成了

cat file | cut -f 2 | uniq > grepfile

但我不确定现在如何像以前一样使用 grep -f 每行获得一个匹配项。使用 -m1 或 | head -n 1 只给出第一个匹配行。我希望第一行匹配“grepfile”中的每一行。

期待答案=)

最佳答案

这个 awk 命令的工作原理是构建一个由已经看到的第二个字段值组成的关联数组。

awk '!s[$2]++'

关联数组称为s。该表达式查找 $2(输入行的第二列)并应用一个后增量,它将在第一次调用时返回 0,此后返回非零。然后我反转它,第一次看到每 2 美元时产生 1,之后每次都产生 0。如果选择表达式为真,则 awk 的默认操作是打印。

当行数大到足以再次回绕到 0 时,请注意。

关于unix - grep -f 只返回第一个匹配(许多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11292414/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com