在shell脚本中一一剪切字段

在shell脚本中一一剪切字段

我有一个这样的数据:

var1=col1,col2,col3,col4

我想像那样切割领域col1,并且col3应该聚集在一起,col2并且col4应该聚集在一起。

这样我的输出变量应该包含这样的值。

var2=col1,col3
var3=col2,col4

寻求一些帮助。

答案1

使用 POSIX shell:

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

相关内容