Коментувати рядки з 2 по 4 сайту bla.conf:
sed -i '2,4 s/^/#/' bla.conf
Щоб зробити команду, яку ви хотіли, просто покладіть вище в сценарій оболонки під назвою comment:
#!/bin/sh
sed -i "$1"' s/^/#/' "$2"
Цей сценарій використовується так само, як і ваш, за винятком того, що перший і останній рядки повинні бути розділені комою, а не тире. Наприклад:
comment 2,4 bla.conf
Команда для коментарів може бути створена аналогічно.
Розширена функція
sed
Вибір лінії досить потужний. Окрім того, щоб вказати перший та останній рядки за номером, також можна вказати їх за допомогою регулярного вираження. Отже, якщо ви хочете командувати всіма рядками від того, що містить, foo
до того, що містить bar
, використовуйте:
comment '/foo/,/bar/' bla.conf
Системи BSD (OSX)
З BSD sed -i
опція потребує аргументу, навіть якщо це лише порожній рядок. Так, наприклад, замініть верхню команду вище на:
sed -i '' '2,4 s/^/#/' bla.conf
І замініть команду в сценарії на:
sed -i '' "$1"' s/^/#/' "$2"
sed
,perl
і т.д. У зокрема, А по terdon!