0

こんにちは、私は現在、Linux でスクリプト ファイルを作成しようとしています。このスクリプト ファイルは、o プログラムの出力を入力としてスキャンし、いくつかの単語が何回出現しているかを調べます。より明確にするために、出力をスキャンし、その出力にいくつかの単語が何回存在するかを変数に保存したいと思います。Linux で scripitin を初めて使用します。出力をファイルに保存してから、単語を見つけるために行ごとにスキャンしようとしましたが、理由により、解析に使用するループが終了しません。手伝って頂けますか?

./program > buffer.txt

while read LINE
do
echo $LINE | grep word1  #when i use grep command the loop never ends
done <a.txt

編集:Cでは、同等のプログラムは次のようになります

char* word="word1"
while(/*parse all the lines at a text */)
{
fgetline("file_a",&buffer)
if(strcmp(buffer,word)==0)
 strcpy(word1,"word") //continue the search with this 
}
4

2 に答える 2

0

最も簡単な方法は、ファイルへの書き込みを完全にスキップすることです

if ./program | grep -q word1 &>/dev/null; then
    echo "TRUE"
fi

-q はgrepに静かにするように指示しますが、それでも時々エラーメッセージが生成される可能性があり、&>/dev/nullで抑制することができます。エラー メッセージを表示したい場合は、その部分を削除してください。./program のエラーと stdout を grep で分析する場合は、次のように stderr を stdout にリダイレクトする必要があります

于 2013-12-14T00:45:23.543 に答える
0

コードは正常に動作しています。while ループは終了します。while ループの後に次の行を追加して確認してください

echo "ループが終了しました!"

于 2013-04-25T09:43:40.297 に答える