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


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

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

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

Оффлайн stingmonday

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

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


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

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3032
    • Просмотр профиля
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

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
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.053 секунд. Запросов: 25.