Если вы перевернули всю строку, вы также должны перевернуть результат после извлечения.
Однако использование регулярного выражения PCRE (включается через опцию P
) для вашего случая может упростить задачу:
grep -oP ".*'\K[^']+"
Здесь .*'
соответствует последнему (крайнему правому)) в случае '
, \K
оператор сброса совпадения отбрасывает весь сопоставленный текст и [^']+
вставит в результат 1 или более символов, отличных от '
.
Так как не все системы предлагают функциональность PCRE с grep
, вы можете также рассмотреть решение awk
:
awk -F\'\' 'gsub(/^'"'"'+|'"'"'+$/, "", $0) {print $NF}'
Здесь строка разбивается на поля с подстрокой ''
(-F\'\'
), затем ведущий / конечный '
удаляются (gsub(/^'"'"'+|'"'"'+$/, "", $0)
), а затем печатается последнее поле (print $NF
).
См. онлайн-демонстрацию .