Если я правильно понял, вам нужен весь текст между одинарными кавычками; Вы можете использовать это:
$ sed -r "s/^.*'([^']*)'.*$/\"\1\"/g" <<< "\" File: 'space folder' \""
"space folder"
$
Edit1: объяснение
command <<< string
=><<<
указывает здесь строку, вы передаете строку в команде.
Наша конечная строка заключается в следующем:
$ echo -e "\" File: 'space folder' \""
" File: 'space folder' "
$
, так как наша строка содержит одинарные кавычки мы используем двойные кавычки для sed
команды:
-r
переключатель позволяет расширенное регулярное выражение
"s/^.*'([^']*)'.*$/\"\1\"/g"
приведенная выше команда заменяет всю строку текстом, находящимся между одинарные кавычки.
Регулярная Разбивка выражения:
^
матчи начало строки
.*
соответствует 0 или более символам
'
соответствует одинарной кавычке
([^']*)
согласующей s 0 или более символов, которые не являются одинарные кавычки и запоминает его в качестве захваченной группы с номером обратной ссылки \1
'
матчи одинарную кавычку
.*
матчи 0 или более символов
$
матчи конец строки
Можете ли вы добавить еще несколько примеров для разъяснения своих а также показать вашу попытку. – anubhava