ファイル内の正確な文字列数をリストします。

ファイル内の正確な文字列数をリストします。
  11111  1  11  1111111    1 1  1  1 1 1 1  111 1  1 1  1  11 11111111   1    11 1 11 11  1 11111   1 1 

図のようなファイルがありますが、サイズが大きいです。私の目標は、111、1、11、1111などの数を出力することです。ファイルにすべて含まれています。私は次のことについて話している記事をたくさん見ています。

grep "\^word\" text_file
grep "\bword\b" text_file
grep -Fx "word" text_file
and so on...

どちらも何も出力しないか、ファイル全体を出力します。特定の番号だけをリストするにはどうすればよいですか?

ベストアンサー1

trsortおよびuniq:を使用してください。

$ tr -s ' ' '\n' <file | sort | uniq -c
   1
  17 1
   5 11
   1 111
   2 11111
   1 1111111
   1 11111111

これは空行(上記の出力の最初の行)も提供しますが、以下を使用するとこれを防ぐことができますsed

$ tr -s ' ' '\n' <file | sed '/^$/d' | sort | uniq -c
  17 1
   5 11
   1 111
   2 11111
   1 1111111
   1 11111111

パイプは、すべてのスペースを改行に変更し、結果行をソートし、各行の発生回数を計算します。

おすすめ記事