ksh에서 문자열 나누기 문자열을 나누는

ksh에서 문자열을 나누는 빠르고 쉬운 방법을 찾고 있습니다.

각 항목간에 다양한 수의 구분 기호 (공백)가 있습니다.

예:

value1 value2                  value3

어떤 제안 / 조언?



답변

입력 문자열과 함께 for 루프를 사용하면 공백으로 분할됩니다.

LIST="value1  value2 value3"
for x in $LIST ; do
    echo $x
done

수확량

value1
value2
value3

또는

LIST="value1  value2 value3"
set -A STRING "$LIST"
for x in $STRING ; do
    echo $x
done

수확량

value1
value2
value3

답변

배열을 사용할 수 있습니다.

LIST="value1  value2 value3"
set -A values $LIST
echo ${values[0]}

value1

답변

sed 및 선택적으로 grep을 통한 파이프 작동

LIST="value1  value2 value3" ;
echo "$LIST" | sed 's/[[:space:]]/\n/g' | grep .

다른 서식이 적용될 수 있지만 여러 공백을 제거하는 따옴표를 삭제하면 grep을 삭제할 수 있습니다.

LIST="value1  value2 value3" ;
echo $LIST | sed 's/[[:space:]]/\n/g'