Silver Searcher: как вернуть имя файла без пути

Я использую Silver Searcher для поиска информации в моей библиотеке Caliber, которая по умолчанию использует длинные каталоги и имена файлов, которые немного избыточны. Пример поиска:

chris@ODYSSEUS:~/db/ebooks/paper-art$ ag --markdown angel

Christophe Boudias (Editor)/Origami Bogota 2014 (Paginas de Origami) (2)/Origami Bogota 2014    (Paginas de Origami) - Christophe Boudias (Editor).md
8:* [16] Angel (???)
9:* [22] Christmas Angel (Uniya Filonova)

Juan Fernando Aguilera (Editor)/Origami Bogota 2013 (Paginas de Origami) (1)/Origami Bogota 2013 (Paginas de Origami) - Juan Fernando Aguilera (Editor).md
29:* [96] Inspired Origami Angel (K. Dianne Stephens)
31:* [100] Angel for Eric Joisel (Kay Kraschewski)

Я хотел бы вернуть только имя файла, где в примере показан весь путь. Как я могу это сделать?


ag
person Chris    schedule 27.11.2014    source источник


Ответы (1)


Флаг l (нижний регистр L) вернет файлы с совпадениями вместо совпавших строк.

e.g.

$ ag -l "angel"

вы можете подключиться к sed, чтобы удалить все, вплоть до последнего /, которое оставляет имя файла.

ag -l angel | sed 's=.*/=='

person zsoobhan    schedule 06.01.2015
comment
Это по-прежнему возвращает весь путь вместе с именем файла... Я пытаюсь вернуть ТОЛЬКО имя файла, а не путь! - person Chris; 14.01.2015
comment
Извините, я пропустил это. Трубопровод к SED должен сделать это (см. редактирование). - person zsoobhan; 16.01.2015
comment
мы могли бы использовать basename, чтобы получить это: ag -l angel | xargs basename - person ryan; 11.04.2017
comment
xargs -n 1 basename (-n max-args, --max-args=max-args: использовать не более max-args аргументов на командную строку). В противном случае вы можете получить ошибку basename: extra operand. - person Pablo Bianchi; 15.07.2017