2014-05-16 98 views
0

文件:正則表達式包括管道

one|two|three|peter01|five|six 
one|peter01|three|four|five|six 

輸出:

one|two|three|peter01|five|six 

如何用grep peter01僅在第4場?

我想:

egrep "^*\|*\|*\|peter01\|*$" 

,但沒有運氣!

回答

2

是否必須是grep?這是一個良好的使用awk

awk -F'\|' '$4 == "peter01"' 

與正則表達式的問題是,你*前失去了一些東西。它應該是:

egrep '^[^|]*\|[^|]*\|[^|]*\|peter01\|' 
+0

感謝,它的工作原理,裏面的Perl,我需要如果使用'然後egrep'將是很好的使用RE間隔以及再次刪除backslases,沒必要逃避,感謝 –

+0

。 'egrep'^([^ |] * \ |){3} peter01 \ |' file' –