LINUX.ORG.RU

[sed][table] Замена строки в таблице.

 ,


0

1

Как должно выглядеть регулярное выражение типа: подстрока, начинающаяся с Foo, не содержащая Foo, но содержащая Bar?
Требуется заменить эту подстроку n(варьируется) её экземплярами. Что-то типа

sed 's~Foo[^Fo]*Bar~\1{$n}~'
Не могу найти решения, интернет еле доступен.

★★★★★

Foo, не содержащая Foo, но содержащая Bar?

Одним ERE вряд ли можно обойтись, но сед поддерживает вложенные конструкции.

Не очень понятно, что за подстрока, а так:

sed -nr 'h; s/Foo.*/\n\0/; s/.*\n//; s/(.)Foo.*/\1/; /Bar/ { <actions> }'
anonymous
()

n(варьируется) её экземплярами.

И да, это уже не область sed-а. (awk / perl / ruby / python / bash)

anonymous
()
Ответ на: комментарий от anonymous

Огромное спасибо! По хорошему - нужно «вкуривать» Perl. Просто тут Cygwin и кроме sed и <8k интернета нету ничего.
Bash доступен, но некторые моменты пришлось оптимизировать, уже пайпы с подпроцессами внутри цикла замедляют работу скрипта.

Не очень понятно, что за подстрока

Просто не осилил макросы Excel, сделал шаблоны Excel в xml и Bash-скрипт на скорую руку, хотел вот «ресайзить» таблицы, но, жаль, - не приняли! ;-(

backbone ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.