首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何处理循环中的每一条输出行?

如何处理循环中的每一条输出行?
EN

Stack Overflow用户
提问于 2013-05-01 20:19:36
回答 6查看 204.5K关注 0票数 172

在运行grep命令后,我从一个文件中检索到了许多行,如下所示:

var=`grep xyz abc.txt`

假设我得到了10行代码,其中包含xyz。

现在,我需要处理由grep命令得到的每一行。我该如何继续呢?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-05-01 20:23:43

一种简单的方法不是将输出存储在变量中,而是使用while/read循环直接对其进行迭代。

类似于:

grep xyz abc.txt | while read -r line ; do
    echo "Processing $line"
    # your code goes here
done

这个方案有很多不同之处,这取决于你到底想要什么。

如果您需要更改循环内部的变量(并使更改在循环外部可见),则可以使用fedorqui's answer中所述的流程替换

while read -r line ; do
    echo "Processing $line"
    # your code goes here
done < <(grep xyz abc.txt)
票数 308
EN

Stack Overflow用户

发布于 2013-05-01 21:40:00

我建议在这里使用awk而不是grep +其他东西。

awk '$0~/xyz/{ //your code goes here}' abc.txt

票数 8
EN

Stack Overflow用户

发布于 2020-02-18 20:19:19

对于那些正在寻找一行代码的人:

grep xyz abc.txt | while read -r line; do echo "Processing $line"; done
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16317961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档