문자열을 Python 목록처럼 보이도록 변환

문자열을 Python 목록처럼 보이도록 변환

"string1, string2, string3"과 같은 문자열이 있습니다.

["string1","string2","string3"]로 변환하고 싶습니다.

나는 사용하려고

sed 's/\(,\)/"\1"/g'

하지만 돌아왔어string1","string2","string3

답변1

이미 쉼표 주위에 따옴표를 삽입할 수 있으므로 시작과 끝에 합계를 추가하기만 하면 됩니다 ["."]

sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'

예:

$ echo string1,string2,string3 | sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'
["string1","string2","string3"]

답변2

순수한 bash 솔루션은 다음과 같습니다.

$ str='string1,string2,string3'
$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]

이 방법에는 외부 유틸리티나 하위 프로세스가 필요하지 않으므로 속도가 빠릅니다.

어떻게 작동하나요?

우리는 배쉬를 사용합니다패턴 교체모든 쉼표는 셸 활성 문자 ","이므로 "다음 명령에서 이스케이프해야 합니다.

$ echo ${str//,/\",\"}
string1","string2","string3

마지막 단계는 문자열의 ["시작과 끝에 추가하는 것입니다. "]그러므로:

$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]

관련 정보