2017-12-18 2 views
0

I aa.dat haben, die Daten wie unten haben,Wie grep Daten basierend auf Strings in verschiedenen Spalten?

frame  1 16980 O 17115H 17123H 
FRAME  1 16980 O 16971H 16981H 
frame  1 16982 O 17110H 17121H 
FRAME  1 16982 O 16961H 16978H 
frame  1 16984 O 17124H 17127H 
FRAME  1 16984 O 16983H 16990H 
frame  1 17110 O 17102H 17225H 
FRAME  1 17110 O 16951H 17138H 
FRAME  2 16982 O 16961H 16978H 
frame  2 16984 O 17124H 17127H 
FRAME  2 16984 O 16983H 16990H 
frame  2 17110 O 17102H 17225H 
FRAME  2 17110 O 16951H 17138H 
... 
frame  3 16984 O 17124H 17127H 
FRAME  3 16984 O 16983H 16990H 
frame  3 17110 O 17102H 17225H 
FRAME  3 17110 O 16951H 17138H 
frame  4 16980 O 17115H 17123H 
FRAME  4 16980 O 16971H 16981H 
frame  4 16982 O 17110H 17121H 
FRAME  4 16982 O 16961H 16978H 
frame  4 17110 Ac 17102H 17225H 
FRAME  4 17110 Ac 16952H 17118H 
... 

Ich möchte Daten mit "FRAME" erhalten und "17110" NUR IN DEN 3.

FRAME  1 17110 O 16951H 17138H 
FRAME  2 17110 O 16951H 17138H 
FRAME  3 17110 O 16951H 17138H 
FRAME  4 17110 Ac 16952H 17118H 
... 

aber mein Code

grep -E 'FRAME.*17110' aa.dat 

konnte nicht Daten von Zeile bestehend aus 17110H trennen.

Jeder Vorschlag und Hilfe würde sehr geschätzt werden.

Best,

Leon

Antwort

0
grep -P 'FRAME.*17110\W' aa.dat 

Kurze Erklärung,

  • -P: Interpretieren MUSTER als regulären Perl-Ausdruck
  • Appended \W nur nicht-Wort erlauben würde (dh [^a-zA-Z_])
Verwandte Themen