0
這是返回不正確的結果:桑達正則表達式返回不正確的結果
sed -regex -no print '/everythingbetween/,/thesephrases/p'
酷。現在讓我通過我的sed命令步驟:
'/<literal string...="[collectionofcharacters(I also tried^at the beginning)]
.(anycharacter)+(greedy)?(lessgreedy, or until first instance of the following)
DBAppender(string literal)/,/ \/>(another string literal)/p'
我的實際語句
sed -rn '/<appender-ref ref="[ET].+?DBAppender/,/\/>/p'
結果。
<appender-ref ref="ErrorDBAppender" />
<appender-ref ref="TracingDBAppender" />
<appender-ref ref="ErrorDBAppender" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="ErrorDBAppender" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="ErrorDBAppender" />
<appender-ref ref="TracingDBAppender" />
<appender-ref ref="ErrorDBAppender" />
<appender-ref ref="TracingDBAppender" />
<appender-ref ref="ErrorDBAppender" />
請,有人告訴我爲什麼「滾石」被顯示出來時,我甚至指定字符後的「必須是一個E或一個T,不是的R !?
編輯:請告訴我如何使用另一個工具來做到這一點,請指定爲什麼它不首先與sed配合使用
未檢查結束模式的起始行。 「滾動」行結束了該組。 – jthill
我明白了。簡單地做一個's/ /g'可能會更好,但是在這種情況下,爲什麼它跳過第一個/>,並且還添加了'/^.+?
nanthil
問題是,你匹配到'/>'匹配到'/>'的最後一個實例。你可以使用'sed -rn'/
anubhava