跟踪字段分隔符之间每个值的出现次数

跟踪字段分隔符之间每个值的出现次数

我正在尝试收集有关文件中每个单独值的出现次数的信息。我想输出该值、它在整个文件中出现的次数,并计算每个值在字段分隔符之间出现的次数:"---" 输入:

textfile.txt

输出:

indexed_value - 50 - 12

我已经开始使用 [gnu.org 上的这个程序][1] 来索引一个值并对其频率求和,但无法进一步进行。

使用旧版本的 mawk。

awk    '{
        for (i = 1; i <= NF; i++)
            freq[$i]++
    }END {
            for (word in freq)
                printf "%s\t%d\n", word, freq[word]
    }' ./dir/file.txt | sort -f

哪个输出

indexed_value - 50

用于跟踪字段数量:

awk -F "___" '
{ count[NF]++ }
END{
    for(num in count) 
        printf("%s\t%d\n", num, count[num]) 
}'

输出:

number of fields separated by ---     22
number of new lines                   323

我只需要用指定的字段分隔符分隔的数字。如何将这两个命令合二为一?

答案1

假设以下变量:

字母:t

文件名:终端

字段分隔符:p

以下命令将为您提供您所要求的一切,而无需使用 mawk:

echo " t - $(grep -oi t 终端 | wc -l) - $(grep -it*p 终端 | wc -l)"

如果要使其区分大小写,请从 grep 命令中删除“i”标志。

相关内容