![파이썬 목록처럼 보이도록 문자열 변환](https://rvso.com/image/154483/%ED%8C%8C%EC%9D%B4%EC%8D%AC%20%EB%AA%A9%EB%A1%9D%EC%B2%98%EB%9F%BC%20%EB%B3%B4%EC%9D%B4%EB%8F%84%EB%A1%9D%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EB%B3%80%ED%99%98.png)
'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"]