私のプロジェクトのちょっとした背景: ファイルごとに個別のプロセスが必要な任意の数のファイルがあり、特定の KEY が使用されるたびに exec() 呼び出しを使用して検索する必要があります。次のコマンドを使用して、コマンド ラインから grep を使用する方法を知っています。
grep -o KEY FILENAME.txt | wc -l > OUTPUT.txt
しかし、C ++でこれを行う方法がわかりません。ここで、この行を提供するスレッドを見つけました。
execl("/bin/grep","grep",pattern,filename,NULL);
コンパイルして実行されるので動作すると思いますが、問題はパターンが発生した回数をファイルに出力する必要があることです。このエラー「grep: out.txt: No such file or directory」が表示されました
execl("/bin/grep", "grep",pattern,fileName,output,NULL);
これが私のプロジェクトのこの部分の方向性です。
これを行うには、システム コール exec() を使用して、シェルの実行可能ファイルへのパス (通常は /bin/sh ) と、 /bin/sh の引数として文字列 -c と文字列検索コマンド ( grep -o ... ) に対応します。
ここでいくつかのガイダンスをいただければ幸いです。