Я использую одноразовые команды perl -pi -e
для простого поиска и замены из скрипта bash.Большинство моих регулярных выражений работают нормально, пока я не доберусь до этих:
perl -pi -e 's#\<\?mso-application.*\<Table.*Rows="1"\>#\<Table\>#s' 1.xml
perl -pi -e 's#\</Table.*#\</Table\>#s' 1.xml
Пожалуйста, не обращайте внимания на знаки # вместо слешей, я не хотел избегать еще большего количества символов.Предполагается, что эти регулярные выражения по существу удаляют фрагменты XML-файла, экспортированного из Excel, но не работают.Кажется, это происходит потому, что я использую логику, которая применяется к строкам, и пытаюсь применить ее к файлу (хотя я признаю, что у меня есть только базовое понимание редактирования на месте в Perl).альтернативный способ сделать это (в perl, awk или sed), который может быть выдан из сценария оболочки?