Linuxコマンドの文字列検索の効率を簡単に比較


詳細
次のファイルに含まれる特殊な文字列の行数を簡単に統計する場合があります.
私が最初に考えたのはgrep+wcで、あなたが何を考えているのか分かりませんが、私たちは確かにいろいろな方法があります.
 
もし私たちのファイルがmsgと呼ばれたら、23380092行のデータが入っています.
いくつかの行はこのようなreceiveです:msg 1
私たちの任務はこれらの行の数を見つけることです.
 
1.grep方法
grep ' msg1' msg | wc -l
この方法を使用するのに時間がかかります:1 s
 
2.awkメソッド
awk 'BEGIN{c=1}{if($0 ~/msg1/) c=c+1}END{print c}' msg
この方法の使用時間:8 s
 
3.別のawk方法
awk 'BEGIN{FS=":";c=0;}{if($2 == "msg1") c=c+1}END{print c}' msg
この方法の使用時間:14 s
 
4.ファイル記述子ファイルループを開く
 
#!/bin/bash
count=0;
exec 4 
  

  , N , 。

, 。

 

,grep 。 , wc , 1 。

, awk , 。

 

, 。 。