フィールド区切り記号間の各値の発生回数の追跡

フィールド区切り記号間の各値の発生回数の追跡

ファイル内の各個別値の発生回数に関する情報を収集しようとしています。値、つまりファイル全体で発生した回数を出力し、フィールド区切り記号間で各値が発生した回数を計算したいと思います。"---" 入力:

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

指定されたフィールド区切り文字で区切られた数字だけが必要です。これら2つのコマンドを1つにまとめるにはどうすればよいですか?

答え1

次の変数を想定します。

文字: t

ファイル名:端末

フィールド区切り文字:p

次のコマンドは、mawkを使用せずに要求したすべてを提供します。

echo " t - $(grep -oi t ターミナル | wc -l) - $(grep -it*p ターミナル | wc -l)"

大文字と小文字を区別するには、grepコマンドから「i」フラグを削除します。

関連情報