2012-10-12 92 views
0

我有圖案的文件,像這樣排除一些圖案或二進制文件使用SED/AWK

parent/child 
parent/child/child2 
neighbor/child 
neighbor/child/child3 

我要排除所有neighbor及其子只用sed和awk。

輸出應爲:

parent/child 
parent/child/child2 
+0

** **孩子可能會有一些二進制文件,以及我希望他們排除在外,以及 – Akinza

+0

你說的「二進制文件」是什麼意思?你的輸入是一個文本文件嗎? – 2012-10-12 07:40:15

回答

2
$ cat a 
parent/child 
parent/child/child2 
neighbor/child 
neighbor/child/child3 
$ sed '/neighbor/d' a 
parent/child 
parent/child/child2 

documentation

d - 刪除圖案空間;立即開始下一個週期。

1

使用grep:

$ grep -v 'neighbor' file 
parent/child 
parent/child/child2 
+0

Thankx但是,如果我只允許使用sed或awk而不是grep會怎麼樣。 – Akinza

+0

@Akinza這沒有意義?也許你想把搜索字符串改成「'neighbor'',以便只從行首搜索。 – Bernhard

1

在awk中,

awk '{ if($0 !~ /^neighbor.*/) { print $0} }' file 
+0

'awk -F'/''$ 1!=「neighbor」{print}'file' – Bernhard