bash에서 목록을 문자열로 변환

bash에서 목록을 문자열로 변환

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한 다음 시작과 끝 부분에 따옴표를 다시 적용하세요.

관련 정보