Как мне получить grep для поиска ebuild с определенными строками и создать вывод, содержащий только местоположение ebuild?

Я пытаюсь создать функцию сценария Bash, которая может использоваться для поиска и открытия ebuild с нужной строкой в ​​Atom (текстовом редакторе). Это моя текущая функция скрипта Bash (хранится в ~/.bashrc )

 function edsch { L=$(grep --include "*.ebuild" -R "$1" /usr/portage/$2) for i in ${L[@]} do atom $i done } 

Я хотел бы использовать edsch .src.rpm x11-themes для поиска ebuilds в категории x11-themes с .src.rpm в них, а затем открыть результаты с Atom. Проблема в том, что в ${L} есть содержимое, .src.rpm к тому, где в ebuild появляется строка (например, .src.rpm ), а также расположение ebuilds в моей файловой системе (которую я хочу передать atom в for цикла). А именно, в этом примере ${L} имеет следующее содержание:

 /usr/portage/x11-themes/redhat-artwork/redhat-artwork-5.0.8-r4.ebuild:SRC_URI="mirror://gentoo/${P}-${MY_R}.fc7.src.rpm" /usr/portage/x11-themes/lovelock-backgrounds/lovelock-backgrounds-14.91.1.1.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm" /usr/portage/x11-themes/laughlin-backgrounds/laughlin-backgrounds-14.1.0.3.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm" /usr/portage/x11-themes/solar-backgrounds/solar-backgrounds-0.92.0.5.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm" /usr/portage/x11-themes/goddard-backgrounds/goddard-backgrounds-13.0.0.3.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm" /usr/portage/x11-themes/leonidas-backgrounds/leonidas-backgrounds-11.0.0.2.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm" /usr/portage/x11-themes/verne-backgrounds/verne-backgrounds-15.91.0.1.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm" /usr/portage/x11-themes/constantine-backgrounds/constantine-backgrounds-12.1.1.4.ebuild:SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm" 

Первая часть каждой из этих строк относится к местоположению ebuild в моей системе (например, /usr/portage/x11-themes/constantine-backgrounds/constantine-backgrounds-12.1.1.4.ebuild в последней строке), тогда как вторая часть (например, SRC_URI="mirror://fedora-dev/${SRC_PATH}/${PN}-$(replace_version_separator 3 -).fc${FEDORA}.src.rpm в последней строке) относится к строка, на которой появляется строка .src.rpm . Можно ли изменить вывод grep так, чтобы отображалось только расположение ebuild в моей файловой системе?

One Solution collect form web for “Как мне получить grep для поиска ebuild с определенными строками и создать вывод, содержащий только местоположение ebuild?”

Вы можете сообщить grep чтобы выводить только файлы файлов, соответствующие параметрам поиска, используя параметр -l :

 function edsch { L=$(grep -l --include "*.ebuild" -R "$1" /usr/portage/$2) for i in ${L[@]} do atom $i done } 

Это даст результат, который вы ищете, и откройте соответствующие файлы с помощью Atom.

  • Как управлять файлом журнала с помощью grep или awk?
  • Каков лучший способ поиска с регулярным выражением или найти с grep?
  • Как передать журнал переменных в качестве аргумента скрипту?
  • grep. '^ 1' не будет работать
  • Как найти первое совпадение в нескольких файлах
  • Требуется, чтобы grep значение BINARY.ear md5sum в файле md5sum.txt
  • PCRE-regex Используйте grep для исключения группы захвата
  • Транспортировка непрерывного потока в grep в качестве поискового запроса для поиска в файле
  • Найти файлы, содержащие строку в имени файла и другую строку в файле?
  • Быстрая утилита, которая индексирует файлы / каталоги на centos 6 для более быстрого поиска через файловую систему
  • grep: игнорирование GREP_OPTIONS для поиска с учетом регистра
  • Interesting Posts

    Автоматическое отключение после запуска

    Как я могу определить, будет ли dd стирать мой жесткий диск?

    Как определить, какие процессы используют, сколько энтропии из / dev / urandom

    Копирование буфера обратной прокрутки терминала с сохранением escape-последовательностей ANSI, но без предварительного запуска сценария / экрана

    Как монтировать файловую систему iso9660 как прочитанную запись

    Clone repos с похожим именем

    Как настроить односторонний scp?

    Ubuntu 14.04 с использованием пространства подкачки на 100%, с более чем 40 ГБ свободной памяти, почему?

    Звук перестал работать внезапно

    Использование диска в качестве переменной оболочки

    Невозможно написать share samba с определенным именем

    Какую команду я бы использовал, чтобы узнать, сколько всего пространства осталось на моем жестком диске?

    Подключен к VPN, но не удается подключить хосты в удаленной сети

    Как установить окончательную версию ubuntu с помощью Wubi?

    Как подключить несколько разделов

    Linux и Unix - лучшая ОС в мире.