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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Удаление соседних строк [bash]  (Прочитано 671 раз)

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

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Удаление соседних строк [bash]
« : 14 Марта 2012, 17:33:57 »
ищем строку через grep - если нашли, то удаляем ее + 2-е выше и 1-у ниже

не пойму как это реализовать? По простому...

Пользователь решил продолжить мысль 14 Марта 2012, 17:46:14:
Пока вроде как работает такой ужос:

cat filename | grep 'obsolete' -n | sed 's/:.*//g'
for i in $list
do
sed "$(( $i - 2 )),$(( $i + 1 ))d" -i filename
done
Но как то кривовато
« Последнее редактирование: 14 Марта 2012, 17:46:14 от RazrFalcon »
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн CynicRus

  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
Re: Удаление соседних строк [bash]
« Ответ #1 : 14 Марта 2012, 17:53:51 »
Именно соседних? Или дубликатов, если соседних - то что ты под этим подразумеваешь?
"Only two things are infinite, the universe and human stupidity... and I'm not sure about the universe."  -- Albert Einstein

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Удаление соседних строк [bash]
« Ответ #2 : 14 Марта 2012, 18:34:11 »
строка
строка
найденная_строка
строка
это все нужно стереть
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

andrey_p

  • Гость
Re: Удаление соседних строк [bash]
« Ответ #3 : 14 Марта 2012, 19:03:53 »
perl -0777 -pe 's/.*\n.*\n<PATTERN>\n.*\n//g' FILE

Оффлайн RazrFalcon

  • Автор темы
  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Удаление соседних строк [bash]
« Ответ #4 : 14 Марта 2012, 19:54:22 »
Спасибо. Вроде работает.
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

 

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