![bash에서 목록을 문자열로 변환](https://linux55.com/image/15031/bash%EC%97%90%EC%84%9C%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C%20%EB%B3%80%ED%99%98.png)
unix 명령을 사용하여 목록을 문자열로 변환하고 싶습니다. X는 변수이며 새 변수 Y에 저장됩니다.
X = ['8922','9292','3220'] ~ '8922,9292,3220'
어떻게 해야 하나요? 제안해주세요.
답변1
X
을 포함하는 변수가 있는 경우 다음을 ['8922','9292','3220']
수행하여 Y
같음 '8922,9292,3220'
(문자열의 일부인 따옴표 포함)을 얻을 수 있습니다.
Y=$(echo "$X" | sed "s/\[//; s/]//; s/','/,/g")
[
(시작)과 ]
(끝) 이 제거됩니다 . 그런 다음 단어 경계( 가 있는 곳 ,
)를 찾아 (예를 들어) …quick','brown…
로 변경하여 내부 따옴표를 제거합니다 …quick,brown…
.
이것에는 많은 변형이 있습니다. 예를 들어 일부 목록 요소에 따옴표가 없는 경우(예: ['8922',42,'3220']
) 다음을 시도해 보세요.
Y =\'$(echo "$X" | sed "s/\[//; s/]//; s/'//g")\'
이것은 제거됩니다모두quote 를 입력 $X
한 다음 시작과 끝 부분에 따옴표를 다시 적용하세요.