シェルスクリプトからフィールドを1つずつ切り取る

シェルスクリプトからフィールドを1つずつ切り取る

次のデータがあります。

var1=col1,col2,col3,col4

私はそのようにフィールドを切りたい、col1それはcol3一緒に束ねなければならないし、束ねなけれcol2col4なりません。

これを行うには、私の出力変数にその値を含める必要があります。

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

おすすめ記事