我想修改我现有的bash脚本。现在看起来是这样的:
#! /bin/bash
SAMPLE = myfile.txt
while read SAMPLE
do
name = $SAMPLE
# some other code
done < $SAMPLE在本例中,'myfile'.txt只包含一列,其中包含我需要的所有信息。
现在我想修改这个脚本,因为'myfile.txt‘现在包含的列数和行数比我需要的要多。
grep 'TEST' myfile.txt | cut -d "," -f 1给了我所需要的值。但是如何将其集成到我的bash脚本中呢?
发布于 2020-04-21 15:51:46
您可以将任何命令的输出通过管道传输到while read循环中。
试试这个:
#! /bin/bash
INPUT=myfile.txt
grep 'TEST' $INPUT |
cut -d "," -f 1 |
while read SAMPLE
do
name=$SAMPLE
# some other code
done发布于 2020-04-21 16:22:16
您必须更改输入字段分隔符(IFS),该分隔符告诉read在何处拆分输入行。然后告诉read读取两个字段:一个是您需要的字段,一个是您不关心的字段。
#! /bin/bash
SAMPLE=myfile.txt
while IFS=, read SAMPLE dontcare
do
name="$SAMPLE"
# some other code
done < <(grep TEST "$SAMPLE")顺便说一句:无论何时使用read,都应该考虑使用选项-r。
https://stackoverflow.com/questions/61338405
复制相似问题