다음 줄이 있습니다.
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"