В GNU (например, на моей машине Ubuntu), просто использование нескольких строк поддерживается и работает хорошо и выглядит хорошим (по моему скромному мнению), поскольку это избегает супер длинных линий, например.
sed -i '/^[[:space:]]*browser.*\.should/s/browser/expect(browser/
/expect(browser.*\.should/s/\.should/).should/
s/\.should/\.to/
s/==/eq/' t1_spec.rb
Около использования точек с запятой можно также дать больше чем одно выражение sed при помощи -e
флаг:
sed -i -e 's/expr1/replace1/' -e 's/expr2/replace2/' t1_spec.rb
Можно использовать точки с запятой для разделения другого substitions между одинарными кавычками, или можно поместить все те команды в файл и указать файл с -f
опция к sed
.
Используя файл особенно полезно, если Вы собираетесь использовать тот же набор sed
команды много раз. Я раньше имел дело с каналом грязных данных, и я заканчивал со временем с 88 названными файлами строки massage.sed
для автоматического убирания большинства частых ошибок, я добрался от канала.