2015-10-19 55 views
0

這裏印刷不同的圖案是一個示例清單:grep的:在不同線路上

apple 
pear 
orange 
orange 
apple 
orange 
pear 
orange 
pear 
orange 
apple 

我所試圖實現的是打印全橙色只有如果後(下)有行蘋果在它(和這行也將被打印)。使用上面的列表中,grep的將返回一個連字符標記線:

apple 
pear 
orange 
-orange 
-apple 
orange 
pear 
orange 
pear 
-orange 
-apple 

這是我最好的嘗試,到目前爲止,我開始命令

strings fruits.txt | egrep 'orange' -A 1 'apple' 

但它返回「 grep:apple:沒有這樣的文件或目錄「。

任何幫助,將不勝感激!

回答

1

有趣的挑戰。我認爲sed會成爲這項工作的更好工具。

sed '/orange/ N; /orange.*\n.*apple/ !{D; N;};' fruits.txt 
+0

嗨金斯基,謝謝你的回覆。恐怕它還沒有真正的工作。它也返回'pear'行。是因爲我這樣使用它:sed'/ orange/N; /orange.*\n.*apple/!{D; N;};」 fruits.txt |字符串? – clippertm

+0

我將原始文件'串成一個單獨的文件,輸出不同:它只返回一個「橙色」線。 – clippertm

+0

我想知道爲什麼。它在我的機器上工作(經典)。 ;)你的新文件與fruits.txt有什麼不同? – Jinksy