您好我正在尝试在Linux中创建一个脚本文件,其输出为o prgram的输出并扫描它以查找存在多少个词的出现。为了更清楚,我想扫描输出并存储变量在该输出中存在多少次单词。我是linux中的scripitin的新手。我尝试将输出存储在一个文件中,然后逐行扫描,以便找到单词,但是由于somre原因,我用来解析它的循环永远不会结束。你能救我吗?
./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
}
答案 0 :(得分:0)
您的代码运行正常, while循环将退出。 尝试在while循环后添加以下行并验证
echo“While loop Exited!”
答案 1 :(得分:0)
最简单的方法是完全跳过写入文件
if ./program | grep -q word1 &>/dev/null; then
echo "TRUE"
fi
-q告诉grep要安静,但它偶尔会产生错误消息,你可以用&amp;&gt; / dev / null来抑制它。如果您希望看到任何错误消息,请删除该部分。 如果你想通过grep分析./program的错误和stdout那么你需要将stderr重定向到stdout,如this