Как удалить текст до и после в слове

У меня есть строка ниже:

create table "sacro".issue

Желаемый результат, который я хочу, приведен ниже:

"sacro"

Я хочу удалить все, что было до первой двойной кавычки, и все после последней двойной кавычки

0
27.06.2017, 16:07
2 ответа
$ 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"
2
28.01.2020, 02:33

В оболочке с использованием расширений 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"
0
28.01.2020, 02:33

Теги

Похожие вопросы