파이썬 목록처럼 보이도록 문자열 변환

파이썬 목록처럼 보이도록 문자열 변환

'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"]

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

작동 원리

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

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

마지막 단계는 문자열의 ["시작과 끝에 추가하는 것입니다 . "]따라서:

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

관련 정보