쉘 스크립트에서 필드를 하나씩 잘라내기

쉘 스크립트에서 필드를 하나씩 잘라내기

다음과 같은 데이터가 있습니다.

var1=col1,col2,col3,col4

나는 그렇게 들판을 자르고 싶고 col1그것은 col3함께 뭉쳐야 col2하고 col4뭉쳐야합니다.

이렇게 하면 내 출력 변수에 해당 값이 포함되어야 합니다.

var2=col1,col3
var3=col2,col4

도움을 받으세요.

답변1

POSIX 쉘 사용:

var1=col1,col2,col3,col4
IFS=,
set -f
set -- $var1
unset var2 var3
while [ "$#" -ge 2 ]; do
  var2=$var2${var2+,}$1
  var3=$var3${var3+,}$2
  shift 2
done

그리고 zsh:

unset var2 var3
for a b ("${(@s:,:)var1}") var2+=${var2+,}$a var3+=${var3+,}$b

관련 정보