Это возвращает неверные результаты:Sed регулярное возвращение неверных результатов
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" />
Пожалуйста, кто-нибудь сказать, почему мой «Роллинг» показывает, когда я даже ЗАДАНИЕ характер после того, как "должен либо быть Е или Т, а не R !?
Редактировать : Пожалуйста, если вы расскажете мне, как это сделать с помощью другого инструмента, укажите, почему он не работает с sed первым.
Стартовая линия не проверяется на шаблон конца. Линии «Rolling» завершают группу. – jthill
Я вижу. Может быть, лучше просто сделать 's/ /g', но в этом неведении, почему он пропускает первый />, а также добавляет '/^.+?
nanthil
Проблема в том, что вы соответствуете до '/>', которая соответствует последнему экземпляру '/>'. Вы можете использовать 'sed -rn '/
anubhava