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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как в терминале сохранить результаты поиска в отдельный файл?  (Прочитано 1695 раз)

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

Оффлайн mintol

  • Автор темы
  • Новичок
  • *
  • Сообщений: 25
  • не судите строго, я вообще лингвист :)
    • Просмотр профиля
Здравствуйте, подскажите пожалуйста.
У меня есть регулярное выражение, с помощью которого я ищу слова в тексте. Мне нужно сохранить в новый файл только лишь результат поиска, когда использую значок ">" он просто сохраняет текущий текст под новым названием. А как сделать чтобы сохранялось лишь то слово, которое он мне нашел?
В терминале пишу таким образом:
$grep -E '(dora*|tora*|sora*|ante*)\s' poisk.txt > result.txt
Слово подсвечивает, но отдельно сохранять не хочет :(
Заранее благодарю за помощь.



ТС не появлялся на Форуме более полугода по состоянию на 22/07/2019 (последняя явка: 28/11/2018). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 22 Июля 2019, 15:08:52 от zg_nico »

zse

  • Гость
   — Ну можно вот так попробовать:
Код: (bash) [Выделить]
tr -s '[:space:]' '[\n*]' < poisk.txt | grep -i -E "^dora|^tora|^sora|^ante" > result.txtэто должно вывести все слова в столбик, которые начинаются на dora и т.д.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 09 Июня 2018, 05:30:26 от zse »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7435
  • Luck Tales
    • Просмотр профиля
grep -Eo '(dora|tora|sora|ante)[^ ]*' poisk.txt > result.txt
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

zse

  • Гость
     — Да, ALiEN175, результат получается одинаковый, но ваше „композиция“ красивее, хотя бы потому, что она короче! :) Без лишних команд…
     — Но я так до конца и не понял, что должно было делать регулярное выражение:
Код: (bash) [Выделить]
'(dora*|tora*|sora*|ante*)\s'
grep -E '(dora*|tora*|sora*|ante*)\s' poisk.txt > result.txt
и почему оно не работало?

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Код: (bash) [Выделить]
grep -Eo '([dts]ora|ante)\S*\b' poisk.txt > result.txt
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Pasha-pivo

  • Участник
  • *
  • Сообщений: 213
    • Просмотр профиля
и почему оно не работало?

Дело в ключе -o, который означает "показывать только часть строки, соответствующую шаблону". По умолчанию выводится строка целиком.

zse

  • Гость
     — Я, Pasha-pivo, наверное плохо объяснил.
Код: (bash) [Выделить]
grep -E '(dora*|tora*|sora*|ante*)\s' poisk.txt > result.txtздесь ещё нет «-o» у автора темы.
     — Прочитав как работает «-o» я примитивно решил разбить всё на отдельные слова «tr -s…😇», а нужно было как сделали Azure и ALiEN175 составить правильно регулярное выражение😈!
     — Поскольку автора темы нет, нет и объяснения что он (по-моему она, но это не важно😇) хотел достичь используя «\s» 😞

Оффлайн Pasha-pivo

  • Участник
  • *
  • Сообщений: 213
    • Просмотр профиля
А может быть я невнимательно читал 🙂

 

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