$ sed -e 's!^.*/!!' locations.txt
mlocate
mlocate.conffiles
mlocate.list
mlocate.md5sums
mlocate.postinst
mlocate.postrm
mlocate.prerm
Кванторы регулярных выражений являются жадными, что означает, что .*
соответствует как можно большей части входных данных.Прочитайте шаблон формы .*X
как «последний X
в строке».В этом случае мы удаляем все до конца /
в каждой строке.
Я использовал удары вместо обычных разделителей прямой косой черты, чтобы избежать необходимости экранировать буквальную косую черту, которую мы хотимматч.В противном случае эквивалентная, хотя и менее читаемая команда:
$ sed -e 's/^.*\///' locations.txt