满足两个条件后从文本文件中提取数据
Extracting data from text file after 2 conditions have been met
我目前正在编写一个 bash 脚本,它从名为 carslist.txt
的文本文件中提取数据,其中每辆汽车(及其相应的特征)都在不同的行上。我已经能够在满足单个条件(例如下面)后从文本文件中提取和保存数据,但我不知道如何在两个条件下执行此操作。
单一条件示例:
grep 'Vauxhall' $CARFILE > output/Vauxhall_Cars.txt
输出:
Vauxhall:Vectra:1999:White:2
Vauxhall:Corsa:1999:White:5
Vauxhall:Cavalier:1995:White:2
Vauxhall:Nova:1994:Black:8
从上面的例子中,如果我想在提取数据之前满足Vauxhall
和White
条件,我该如何提取数据?
上面的 grep 示例要求在提取和保存数据之前满足 Vauxhall
,但我不知道如何为 2 执行此操作。我已尝试将命令流水线化为 Vauxhall | White
但后来我就没脑子了
提前致谢。
我建议使用 awk
,像这样:
awk -F: '=="Vauxhall" && =="White"' input.file
因为我使用 :
作为字段分隔符,所以我只需要检查字段 1 和 4 的值。
我目前正在编写一个 bash 脚本,它从名为 carslist.txt
的文本文件中提取数据,其中每辆汽车(及其相应的特征)都在不同的行上。我已经能够在满足单个条件(例如下面)后从文本文件中提取和保存数据,但我不知道如何在两个条件下执行此操作。
单一条件示例:
grep 'Vauxhall' $CARFILE > output/Vauxhall_Cars.txt
输出:
Vauxhall:Vectra:1999:White:2
Vauxhall:Corsa:1999:White:5
Vauxhall:Cavalier:1995:White:2
Vauxhall:Nova:1994:Black:8
从上面的例子中,如果我想在提取数据之前满足Vauxhall
和White
条件,我该如何提取数据?
上面的 grep 示例要求在提取和保存数据之前满足 Vauxhall
,但我不知道如何为 2 执行此操作。我已尝试将命令流水线化为 Vauxhall | White
但后来我就没脑子了
提前致谢。
我建议使用 awk
,像这样:
awk -F: '=="Vauxhall" && =="White"' input.file
因为我使用 :
作为字段分隔符,所以我只需要检查字段 1 和 4 的值。