Форум русскоязычного сообщества Ubuntu


Автор Тема: Решено:Удаление закоментированных строк  (Прочитано 6113 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн demontager

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
  • KHERSON
    • Просмотр профиля
    • Nixtalks IT-експлорер
Чем можно и как удалять  строки с документа начинающегося с определённого символа? К примеру,  хочу удалить все строчки, которые начинаются с #. Мне так легче читать конфиг файл, который очень сильно закоментирован.

Вот samba.conf, очень много комментов, не удобно читать, слишком много "мусора"
(Нажмите, чтобы показать/скрыть)

На работе приходится работать с Win системами, подскажите, какой редактор и как сможет это сделать ещё и там.
« Последнее редактирование: 13 Сентября 2009, 14:35:21 от demontager »
Пишу о разном сюда nixtalk.com

Оффлайн ende_neu

  • Старожил
  • *
  • Сообщений: 2473
    • Просмотр профиля
Re: Удаление закоментированных строк
« Ответ #1 : 13 Сентября 2009, 07:00:01 »
sed.
sed '/^#/d' навскидку.Алсо,он есть и Вендовый.

Оффлайн demontager

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
  • KHERSON
    • Просмотр профиля
    • Nixtalks IT-експлорер
Re: Удаление закоментированных строк
« Ответ #2 : 13 Сентября 2009, 13:16:43 »
Что-то не так с синтаксисом,
на Linux
dem@dem-laptop:~/mnt$ sed '/^#d' smb.conf
sed: -e expression #1, char 4: unterminated address regex
dem@dem-laptop:~/mnt$
Win
C:\CUDA\add>sed '/^#d' smb.conf.txt
sed: -e expression #1, char 1: unknown command: `''
А как сделать чтоб он ещё не заменял исходный файл, а выводил результат в другой? sed команда file > output?
Пишу о разном сюда nixtalk.com

Оффлайн Svertal

  • Активист
  • *
  • Сообщений: 893
  • КиберПанк
    • Просмотр профиля
Re: Удаление закоментированных строк
« Ответ #3 : 13 Сентября 2009, 13:30:26 »
Что-то не так с синтаксисом,
на Linux
dem@dem-laptop:~/mnt$ sed '/^#d' smb.conf
sed: -e expression #1, char 4: unterminated address regex
dem@dem-laptop:~/mnt$
Внимательнее нужно относится к копипасту, было предложено sed '/^#/d', было введено sed '/^#d'.
Цитировать
А как сделать чтоб он ещё не заменял исходный файл, а выводил результат в другой? sed команда file > output?
Именно так, исходный файл в любом случае не заменит, просто если не указать вывод в файл то выведет результат прямо в консоли.

Оффлайн demontager

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
  • KHERSON
    • Просмотр профиля
    • Nixtalks IT-експлорер
Re: Удаление закоментированных строк
« Ответ #4 : 13 Сентября 2009, 14:08:31 »
Моя невнимательность, всё рабоает, только на win не нужны ' '

После удаления остаются пустые строки, как можно и их удалить, чтоб текст шёл влотную. И как скомпоновать это в одну команду, удаление #+пустые строки?
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 13 Сентября 2009, 14:10:48 от demontager »
Пишу о разном сюда nixtalk.com

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Удаление закоментированных строк
« Ответ #5 : 13 Сентября 2009, 14:18:26 »
sed '/^#\|^$/d' /etc/samba/smb.conf
grep -v '^#\|^$' /etc/samba/smb.conf
« Последнее редактирование: 13 Сентября 2009, 14:21:19 от ArcFi »

Оффлайн demontager

  • Автор темы
  • Активист
  • *
  • Сообщений: 304
  • KHERSON
    • Просмотр профиля
    • Nixtalks IT-експлорер
Re: Решено:Удаление закоментированных строк
« Ответ #6 : 13 Сентября 2009, 14:38:21 »
Точно, можно было и через grep сделать, -v делает обратный/инвертный выбор.
Пишу о разном сюда nixtalk.com

 

Страница сгенерирована за 0.031 секунд. Запросов: 24.