首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >bash -使用grep和cut在读取时组合

bash -使用grep和cut在读取时组合
EN

Stack Overflow用户
提问于 2020-04-21 15:47:38
回答 2查看 53关注 0票数 0

我想修改我现有的bash脚本。现在看起来是这样的:

代码语言:javascript
运行
复制
#! /bin/bash    
SAMPLE = myfile.txt

while read SAMPLE
do
    name = $SAMPLE
    # some other code
done < $SAMPLE

在本例中,'myfile'.txt只包含一列,其中包含我需要的所有信息。

现在我想修改这个脚本,因为'myfile.txt‘现在包含的列数和行数比我需要的要多。

代码语言:javascript
运行
复制
grep 'TEST' myfile.txt | cut -d "," -f 1

给了我所需要的值。但是如何将其集成到我的bash脚本中呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-21 15:51:46

您可以将任何命令的输出通过管道传输到while read循环中。

试试这个:

代码语言:javascript
运行
复制
#! /bin/bash    
INPUT=myfile.txt

grep 'TEST' $INPUT | 
cut -d "," -f 1 | 
while read SAMPLE
do
    name=$SAMPLE
    # some other code
done
票数 2
EN

Stack Overflow用户

发布于 2020-04-21 16:22:16

您必须更改输入字段分隔符(IFS),该分隔符告诉read在何处拆分输入行。然后告诉read读取两个字段:一个是您需要的字段,一个是您不关心的字段。

代码语言:javascript
运行
复制
#! /bin/bash    
SAMPLE=myfile.txt

while IFS=, read SAMPLE dontcare
do
    name="$SAMPLE"
    # some other code
done < <(grep TEST "$SAMPLE")

顺便说一句:无论何时使用read,都应该考虑使用选项-r

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61338405

复制
相关文章

相似问题

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