我有一个这样的laaaaaarge文件:
VENDOR|QTY|ITEM|PRICE 2|3|Sugar|15 3|3|Coffee|35 4|244|Sugar2|55 33|2|Pizza|36 3|3|Pizza|55 5|5|Pizza2|33 6|6|Pizza3|44
如何打印供应VENDOR
和PRICE
IFF ITEM
是Pizza
?
我试过grep
但是速度很慢。
我可以这样编写一个python代码,
for line in file: fields = line.split('|') if fields[2] == 'Pizza': print fields[0], fields[-1]
更新
如何检查子串?
如果比萨出现在ITEM
我想输出VENDOR
和PRICE
?
输出应该是:
33|36 3|55 5|33 6|44
这使得它:
$ awk -F\| '$3=="Pizza" {print $1,$4}' file 33 36 3 55
-F\|
设置|
作为字段分隔符。 $3=="Pizza"
检查第三个字段是否是“披萨”。 {print $1,$4}
打印第一和第四个字段。 如果比萨出现在
ITEM
我想输出VENDOR
和PRICE
?
$ awk 'BEGIN{OFS=FS="|"} $3~/Pizza/ {print $1,$4}' file 33|36 3|55 5|33 6|44
$3~/Pizza/
检查“发生”,以及$3=="Pizza
检查完全匹配。 BEGIN{OFS=FS="|"}
将(输入和输出)字段分隔符设置为|
。