私たちはこのような巨大なファイルを持っています
これはファイルの一部のリストです。
Topic: Ho_HTR_bvt Partition: 31 Leader: 1007 Replicas: 1007,1008,1009 Isr: 1009,1007,1008
Topic: Ho_HTR_bvt Partition: 32 Leader: 1008 Replicas: 1008,1009,1010 Isr: 1010,1009,1008
Topic: Ho_HTR_bvt Partition: 33 Leader: 1009 Replicas: 1009,1010,1006 Isr: 1009,1010,1006
Topic: Ho_HTR_bvt Partition: 34 Leader: 1010 Replicas: 1010,1006,1007 Isr: 1006,1007,1010
Topic: Ho_HTR_bvt Partition: 35 Leader: 1006 Replicas: 1006,1008,1009 Isr: 1006,1009,1008
Topic: Ho_HTR_bvt Partition: 36 Leader: 1007 Replicas: 1007,1009,1010 Isr: 1010,1007,1009
Topic: Ho_HTR_bvt Partition: 37 Leader: 1008 Replicas: 1008,1010,1006 Isr: 1006,1010,1008
Topic: Ho_HTR_bvt Partition: 38 Leader: 1009 Replicas: 1009,1006,1007 Isr: 1007,1009,1006
Topic: Ho_HTR_bvt Partition: 39 Leader: 1010 Replicas: 1010,1007,1008 Isr: 1010,1007,1008
Topic: Ho_HTR_bvt Partition: 40 Leader: 1006 Replicas: 1006,1009,1010 Isr: 1006,1010,1009
Topic: Ho_HTR_bvt Partition: 41 Leader: 1007 Replicas: 1007,1010,1006 Isr: 1006,1007,1010
Topic: Ho_HTR_bvt Partition: 42 Leader: 1008 Replicas: 1008,1006,1007 Isr: 1006,1007,1008
Topic: Ho_HTR_bvt Partition: 43 Leader: 1009 Replicas: 1009,1007,1008 Isr: 1009,1007,1008
Topic: Ho_HTR_bvt Partition: 44 Leader: 1010 Replicas: 1010,1008,1009 Isr: 1010,1009,1008
数量の計算方法 -1007ひも?
またはファイル内の他の単語
答え1
サンプルデータの使用:
$ grep -Fo 1007 file | wc -l
19
パイプラインのこの部分はgrep
文字列を検索します1007
(-F
正規表現一致ではなく文字列比較を実行するため、このフラグが使用されます)。このフラグは新しい行に文字列の個々のインスタンスを返します-o
。返された行数が計算されますwc -l
。
文字列が入力データ行に 2 回表示されると、2 回計算されます。文字列が他の単語の部分文字列として現れる場合でも計算されます。
そしてawk
:
$ awk -v str="1007" '{ c += gsub(str, str) } END { print c }' file
19
これは文字列の発生回数を計算しgsub()
(関数は置換が行われた回数を返し、それを各入力行に個別に適用します)、最後に合計回数を印刷します。興味のある文字列はコマンドラインを介して渡されます-v str="1007"
。
答え2
awkを使用する必要がある場合は、次のコマンドを使用できます。
awk '{for (i=1;i<=NF;i++) if ( $i == "word/number that you want to search") c++ }'END'{print c}' filename
答え3
注文する:
awk '{print gsub("1007",$0)}' filename | awk 'BEGIN{sum=0}{sum=sum+$1}END{print sum}'
-0-praveenk_22@:~ $
出力
awk '{print gsub("1007",$0)}' u.txt | awk 'BEGIN{sum=0}{sum=sum+$1}END{print sum}'
19
-0-praveenk_22@:~ $