2015-05-06 21 views
-1

我得到的查詢就好像給定的模式存在於文件中,下一行以相同的模式開始和結束,刪除開始並以給定模式結束的行從文件內部刪除一個模式條目

輸入是這樣的:

abcd & abcd 
& abcd & 
abcd & abcd 
& abcd 
abcd abcd 
& abcd & 
abcd & abcd 
abcd & 
abcd & abcd 
& abcd &" 

輸出是:

abcd & abcd 
abcd & abcd 
& abcd 
abcd abcd 
& abcd & 
abcd & abcd 
abcd & 
abcd & abcd 

和所用sed命令作爲

var=`sed -n "/$1/{n;p}" $2 | grep "^$1" | grep "$1$"` 
sed -i "/^$var$/d" $2 

但命令只刪除該文件的第一圖案

+0

不應'ABCD abcd'也被刪除?還有'&abcd&',既然開始和結束的格式都相同 – fedorqui

+0

只有'&abcd&'必須被移除 – abinasunny

+0

不清楚模式,你能否給出更詳細的解釋? – fedorqui

回答

0

桑達

sed '/^\& abcd \&$/d' YourFile 

grep的

grep -v '^& abcd &$' YourFile 
+0

我懷疑這是非常複雜的,因爲一條線的邏輯與前一個 – fedorqui

+0

的內容有關,我只是拿了樣本,但沒有代表性。我會適應。 – NeronLeVelu

+0

太混亂了,由於每一行上的遞歸比較,彼此中止sed中的挑戰。 Awk會做到這一點。可能是我有空的時候。 – NeronLeVelu