Я пытаюсь получить полные имена файлов с расширением (abc.jpg), используя sed.Замена заместителя регулярного выражения с обратной речью Почему не работает?
input.txt:
sfdb/asdjfj/abc.jpg
asdfj/asdfj/abd.gif
sfdb/asdjfj/abc.jpg
sfdb/asdjfj/abc-2.jpg
asdfjk/asdjf/asdf_?/sfdb/asdjfj/abc_12.jpg
asdfj/asdfj/abdasdfj
текущая команда:
grep ".jpg" input.txt|sed 's:/\([^/]+\.jpg\):\1:gi'
Grep это просто пример для получения указанных линий (хотя и не нужна). Я уже проверил мой регулярное выражение, чтобы получить только последний '/' + имя файла + .jpg: https://www.regex101.com/r/5GTgak/2
Ожидаемый выход:
abc.jpg
abc.jpg
abc-2.jpg
abc_12.jpg
Но я все еще получаю один и тот же входной файл. Что я делаю не так?
Попробуйте 'sed 's:. */\ ([^ /] + \. Jpg \): \ 1: gi'' –
Вы снова, вы ищете только вопросы регулярного выражения, ( –
@ WiktorStribiżew все еще не работает , regex должно быть в порядке: https://www.regex101.com/r/5GTgak/2 – jack