У меня есть строка ниже:
create table "sacro".issue
Желаемый результат, который я хочу, приведен ниже:
"sacro"
Я хочу удалить все, что было до первой двойной кавычки, и все после последней двойной кавычки
$ echo 'create table "sacro".issue' | cut -d '"' -f 2
sacro
Это обрабатывает строку create table "sacro".issue
в виде списка с разделителями "
и вырезает второе поле, которое представляет собой слово в кавычках.
Если вам нужны кавычки:
$ echo 'create table "sacro".issue' | cut -d '"' -f 2 | sed -e 's/^/"/' -e 's/$/"/'
"sacro"
В оболочке с использованием расширений POSIX, поедающих префиксы/суффиксы:
$ s='create table "sacro".issue'
$ t="${s#*\"}" # remove up to first "
$ t="${t%\"*}" # remove after last "
$ echo "\"$t\"" # put the quotes back...
"sacro"
Если вы ищете данные из файла, проще думать, что это наоборот, сохранить только цитируемую часть. Предполагая, что ваш grep
имеет -o
, то есть:
$ echo 'create table "sacro".issue' > file
$ grep -o '".*"' file
"sacro"