こんにちは友人、
最近、私は非常に勉強を開始
セッド 私が見つけたのは、コマンド...
セッド 私のスクリプトのいくつかは時間がかかる場合もですラインはgrepの検索方法を使用してファイルの行の中のパッテンチェックするために使用するよりも、パターンを見つけることに高速です。
スクリプトでは、以下の" strMatch "なのが私のパターンを検索するために使用されています。 1回のパターンは、パターンとは、行番号や行番号が表示されるだけでは以下のように発見されています。
>入力
strMatch Sample.cpp "パターン文字列"
>出力
5 :パターン文字列
>入力
strMatch Sample.cpp "パターン文字列" 2
>出力
5
私の他のスクリプトの多くは、このスクリプトを使用して、このスクリプトにはほとんどそのような依存関係を使用strMatch直接または間接的に様々な目的のためには、新しいスクリプトを実行しているのが遅くなる、複雑になった始めました。私は、次のに気づいていたという
セッド strMatch微調整するためのコマンドは、検索速度を向上するために使用することができます...
セッド ' /パターン文字列/ p 'をSample.cpp
しかし、私も私の以前のような行数を取得するstrMatch ....は以下のように、出力を印刷する方法はありますが必要
出力1 [行番号&パターン]
5パターン文字列
出力2 [行番号は、パターンが発見された]
5
いくつか私のスクリプトのためにのみ使用して、これらの行番号を.....親切迅速strMatch .... strMatchスクリプトを作ることを目的に役立つパターンを検索し、以下のパターンの位置や、実際のスクリプトです..... strMatch場所と一緒にパターンリターンです...
ある処理のための特別なケースだ" "キーワードを含む.....私実行"コマンド"の任意の代替を見つけるための変数に適切な配置など).....と(と、ファイルのコンテンツを通過することはないあるとき私は、検索キーワード...それは、フォルダ内のすべてのファイルを実行すると考えている私が含まれ.......
セッド コマンド私wont "実行" 、必要とされる
事前に感謝...........


-------------------------------------------------- -----------------------
フィルター( ) (
パターン\u003d $ 1
ライン\u003d $ 2
のX $で行;行う
フラグ\u003d ` Xの|はgrep - cを$パターン` $エコー
もし[ $国旗式1 ] ;し
フラグ$返す
その他の
戻り0
Fiの
完了した
)
# filterKeywords ( ) (
# )
パターン\u003d $ 2
実行< $ 1
# fileCont \u003d ` $ 1 ` rdfil
linCnt \u003d 1
exitCnt \u003d ` $ 1 ` lincnt
cnt \u003d 0
カウント\u003d 0
モード\u003d $ 3
# rdfil $ 1
読みながら行;行う
[ " $ 2 " \u003d\u003d " " ] ;し
quitCon \u003d ` $エコーライン|はgrep - cを"//-------------------------"`
場合、 [ $ quitCon -式1 ] ;し
) ) \u003d$(($カウント+ 1カウント
もし[ $カウント式2 ] ;し
壊す
Fiの
Fiの
Fiの
ステータス\u003d `行|はgrep - c "を$ 2 " ` $エコー
もし[ $状態式1 ] ;し
フィルタfflag \u003d ` $パターン$行を`
wcnt \u003d ` $ fflagエコー|トイレ- lの`
場合、 [ $ wcnt \u003d\u003d 1 ] ;し
場合、 [ $ exitCnt - GEの$ cnt ] ;し
場合、 [ " $モード" ! \u003d " 2 " ] ;し
ケース$モードで
" NUM件" ) #行番号
$ linCntエコー
; ;
" FONは" ) #最初に出現する行番号
$ linCntエコー
終了
; ;
" FOLN " ) #最初に出現するライン
エコーライン$
終了
; ;
" LN " ) #専用ライン
エコーライン$
; ;
* ) #デフォルト
$ linCnt : $ラインエコー
; ;
esac
# " "こんにちはエコー
その他の
$ linCntエコー
Fiの
# filterKeywords $ライン
Fiの
Fiの
Fiの
linCnt \u003d$(($ linCnt + 1 ) )
cnt \u003d$(($ cnt + 1 ) )
# " "---------------------------------------$ cnt $ exitCntエコー
完了した
# "バイエコー! "