我有數據,如下所示:grepping柱(和|或)運營商
bark art|evt|evt|nat
barnburner evt|hum
bash evt|evt
battle act|act|act|evt|evt
bay anm|art|art|art|evt|nat|plt
beat act|act|atr|com|evt|evt|evt|hum|loc|tme
beating act|act|evt|evt
bread act|act|evt|evt|hum|nat
我希望能夠從中提取那些在第一列中的任何字符串的所有行,但一第二欄中的特定信息模式。 更具體地說,我想提取那些在第二列有evt的行,並且至少至少有我指定的另一個值。
舉例來說,我想提取具有EVT和至少哼哼或NAT(或兩者哼和NAT和EVT simutaneously)的所有行。 因此,我期望的結果將是:
bark art|**evt**|**evt**|**nat**
barnburner **evt**|**hum**
bay anm|art|art|art|**evt**|**nat**|plt
beat act|act|atr|com|**evt**|**evt**|**evt**|**hum**|loc|tme
bread act|act|**evt**|**evt**|**hum**|**na**t
我一直在試圖與沒有成功grep
做到這一點。
,我一直在試圖grep的是:
$ grep 'evt\|(hum|nat)' file
任何人都可以點我的方向是什麼,我做錯了什麼? 謝謝!
而不是使用複雜的'grep'的命令,你可以考慮使用'awk',它處理列和條件很容易。 'awk -v FS =「|」 '$ 1 ==「evt」&&($ 2 ==「evt」|| $ 2 ==「act」)'file'等 – fedorqui 2014-09-29 10:39:06