Я хочу написать скрипт, который находит пару тегов открытия / закрытия в текстовом файле и добавляет фиксированную строку к каждой строке между парой. Я полагаю, что я использую grep, чтобы найти номера строк тега, и awk или sed, чтобы разместить теги, однако я не уверен, как именно это сделать.

Может кто-нибудь помочь?

3 ответа3

1

В awk:

START                  {noprefix="true"}
/<close tag regex>/    {noprefix="true"}
noprefix=="false"      {print "prefix", $0}
noprefix=="true"       {print $0}
/<open tag regex>/     {noprefix="false"}
1

Это должно быть сделано одним из традиционно синтаксических языков (yacc и т.д.). Выполнение этого с помощью grep и тому подобного может быть приемлемым для конкретных случаев, но регулярное выражение просто недостаточно мощно, чтобы уловить тонкости HTML.

0

Вы должны рассмотреть возможность использования yacc для этого. Это невозможно сделать с помощью sed, awk или grep без значительных усилий. Что касается изучения yacc, это не займет больше времени, чем изучение sed/awk/grep. И так будет легко.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .