2016-06-03 3 views

ответ

0
#grep line containing two and exclude which has twoA 
grep two filename.txt |grep -v twoA 
oneB twoB threeB 
oneA twoD threeA 

Использование Awk:

awk '!/twoA/ && /two/' filename.txt 
    oneB twoB threeB 
    oneA twoD threeA 
0

Просто сказать:

$ grep 'two[^A]' file 
oneB twoB threeB 
oneA twoD threeA 

То есть, grep для two следует любой символ, кроме A.

+1

это приятно, поскольку его также можно использовать, когда строки содержат более одного вхождения 'two' в' grep 'twoA' file | grep -v two [^ A] '. Скажите, что вам нужны строки, которые имеют 'twoA', но не любые другие' два'. Ницца! – threefrenchhens

+0

@threefrenchhens действительно! И вы также можете использовать 'awk' и хороший трюк ->' awk -F 'twoA "' NF == 2 'file'. – fedorqui

Смежные вопросы