단어 앞뒤의 텍스트를 삭제하는 방법

단어 앞뒤의 텍스트를 삭제하는 방법

다음 줄이 있습니다.

create table "sacro".issue

내가 원하는 예상 결과는 다음과 같습니다.

"sacro"

첫 번째 큰따옴표 앞의 모든 항목과 마지막 큰따옴표 뒤의 모든 항목을 제거하고 싶습니다.

답변1

$ 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

셸에서는 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"

관련 정보