Grep 基于唯一ID统计文件中的文本匹配
我有一个文件,其格式如下:Grep 基于唯一ID统计文件中的文本匹配,grep,Grep,我有一个文件,其格式如下: LINK|Grouping_Indicator|ID_Dat|HASH_Akey|HASH_HUKey| FALSE|75768163|XY100|c5157cba1b5f20|817f8b50bc9 FALSE|75768409|XY102|9f3de314a224f2|b686e4760f5 TRUE|75769393|XY1005|ce0a50207cc86c|f9233c0b8e7 TRUE|75769885|XY101
LINK|Grouping_Indicator|ID_Dat|HASH_Akey|HASH_HUKey|
FALSE|75768163|XY100|c5157cba1b5f20|817f8b50bc9
FALSE|75768409|XY102|9f3de314a224f2|b686e4760f5
TRUE|75769393|XY1005|ce0a50207cc86c|f9233c0b8e7
TRUE|75769885|XY1012|ce0a50207cc86c|ef9eb8ea13f
TRUE|75723124|XY1111|df0q45677ee89v|gt8qc9fb24g
我试图在散列唯一的地方计算TRUE的数目
我已使用以下命令成功地计算了TRUE的总数:
grep -c "TRUE" file.psv
然而,我不确定在散列是唯一的情况下如何计算“TRUE”。
因此,上表中“TRUE”的计数应该只返回2
谢谢我会用awk来做:
awk -F'|' '$1=="TRUE"{a[$(NF-1)]}END{print length(a)}' file
在您的示例中,上述一行将打印2
您还可以通过以下方式完成:
awk -F'|' '$1=="TRUE"&&!a[$(NF-1)]++' file|wc -l
该行稍短,但它会启动另一个进程(
wc
)进行计数。Hi@Kent,谢谢您的回答。在第一个解决方案中,您在哪里指定要在“Hash_Akey”列中查找唯一值?我猜是“NF-1”