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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Удалить все строки содержащие одно слово  (Прочитано 1138 раз)

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

Оффлайн stingmonday

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Подскажите пожалуйста как удалить из большого txt файла все строки содержащие только одно слово в строке и результат сохранить в отдельный txt файл.
т.е имеем

Доброе утро
Доброе утро страна
Страна Доброе утро
Утро
Утро   доброе страна
утро
Утро ДобРОЕ СТРАНА
СТРАНА


надо удалить строки: Утро,утро,СТРАНА и сохранить результат в res.txt

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1785
    • Просмотр профиля
Re: Удалить все строки содержащие одно слово
« Ответ #1 : 27 Декабрь 2014, 10:44:34 »
Читать в скрипте файл построчно и для определения строк с одним словом использовать awk,
в нём внутренняя переменная NF содержит число полей в строке. Т.е. для таких строк
она будет равна 1.
Пётр.

Оффлайн stingmonday

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Удалить все строки содержащие одно слово
« Ответ #2 : 27 Декабрь 2014, 11:31:44 »
а с помощью grep это нельзя реализовать ? c awk вообще к сожалению не знаком. да с grep всю голову уже сломал.

Оффлайн hitomy

  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Удалить все строки содержащие одно слово
« Ответ #3 : 27 Декабрь 2014, 13:02:17 »
Можно ваще без grep.

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5626
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Удалить все строки содержащие одно слово
« Ответ #4 : 27 Декабрь 2014, 14:24:30 »
grep -v "^\s*\w*\s*$" big.txt > res.txtилиgrep "\b\s\+\b" big.txt > res.txt
« Последнее редактирование: 27 Декабрь 2014, 14:27:53 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

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