我有一个具有以下格式的文件:
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
我试图计算HASH_Akey是唯一的TRUE的数量。
我已使用以下命令设法算出TRUE总数:
grep -c "TRUE" file.psv
但是,我不确定HASH_Akey是唯一的情况下如何计算“ TRUE”。 因此,上表中“ TRUE”的计数应仅返回2
谢谢
答案 0 :(得分:1)
我会用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
)进行计数。