在满足2个条件后从文本文件中提取数据

时间:2015-08-17 12:43:56

标签: bash scripting grep

我正在处理一个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

从上面的例子中,如果我想在提取条件之前满足条件VauxhallWhite,我将如何提取数据?

上面的grep示例要求在提取和保存数据之前满足Vauxhall,但我不知道如何为2执行此操作。我已尝试将命令流水线化为{{1}但在那之后我没有想法。

提前致谢。

1 个答案:

答案 0 :(得分:3)

我建议使用awk,如下所示:

awk -F: '$1=="Vauxhall" && $4=="White"' input.file

由于我使用:作为字段分隔符,我只需要检查字段1和4的值。