Chinaunix

标题: shell for循环取数组 [打印本页]

作者: 我叫萌萌    时间: 2015-12-18 17:10
标题: shell for循环取数组
有如下数组:
a="1 2 3 4"
b="A D C B"
c="E F G H"
d="5 6 7 8"

如何能得到新数组:
1 A E 5
2 D F 6
3 C G 7
4 B H 8
求指教!
作者: zxy877298415    时间: 2015-12-18 17:24
  1. awk -F\" '{t=split($2,a," ");for(i=1;i<=t;i++) b[i]=b[i]?b[i]=b[i]" "a[i]:a[i]}END{for(i=1;i<=t;i++) print b[i]}' file         
  2. 1 A E 5
  3. 2 D F 6
  4. 3 C G 7
  5. 4 B H 8
复制代码
回复 1# 我叫萌萌


   
作者: vagrant_1220    时间: 2015-12-18 17:26
for ((i=0;i<4;i++))
do
echo "${a[${i}]} ${b[${i}]} ${c[${i}]} ${d[${i}]}"
done
作者: 我叫萌萌    时间: 2015-12-18 17:28
回复 2# zxy877298415


        我这个不是文件..是要写的脚本如下:
#!/bin/bash
a="1 2 3 4"
b="A D C B"
c="E F G H"
d="5 6 7 8"


作者: 我叫萌萌    时间: 2015-12-18 17:31
回复 3# vagrant_1220


    不对....
作者: 陈卓文    时间: 2015-12-19 14:50
本帖最后由 陈卓文 于 2015-12-19 14:50 编辑

#!bin/bash
a=(1 2 3 4)
b=(A D C B)
c=(E F G H )
d=(5 6 7 8 )
for((i=0;i<4;i++));do
  new_array=(${a[$i]} ${b[$i]} ${c[$i]} ${d[$i]})
  echo ${new_array[@]}
done



作者: jcdiy0601    时间: 2015-12-21 09:33
  1. #!/usr/bin/env python
  2. #_*_ coding:utf-8 _*_

  3. a = "1 2 3 4";a = a.split()
  4. b = "A D C B";b = b.split()
  5. c = "E F G H";c = c.split()
  6. d = "5 6 7 8";d = d.split()

  7. for i in range(len(a)):
  8.         print a[i],b[i],c[i],d[i]
复制代码

作者: Shell_HAT    时间: 2015-12-21 09:42
回复 4# 我叫萌萌


    哪本书上告诉你 a="1 2 3 4" 这样能得到一个数组?
作者: 我叫萌萌    时间: 2015-12-21 09:46
回复 8# Shell_HAT


    是这样的a=()我写错了
作者: 我叫萌萌    时间: 2015-12-21 10:44
回复 6# 陈卓文


    好的   可以用  谢谢了  
作者: rulebook    时间: 2015-12-21 15:19
  1. echo -e "$a\n$b\n$c\n$d" | awk '{for(i=1;i<=NF;i++){a[i]=a[i]!=""?a[i]" "$i:$i}}END{for(i=1;i<=asort(a);i++){print a[i]}}'
复制代码
  1. for((i=1;i<=4;i++)); do for j in a b c d; do printf `echo ${!j} | cut -d" " -f$i`" "; done ;echo ; done
复制代码

作者: 夏洛特猫    时间: 2016-06-01 16:57
默默的笑了+1 回复 8# Shell_HAT


   
作者: ll104567    时间: 2016-06-06 20:16
夏洛特猫 发表于 2016-06-01 16:57
默默的笑了+1 回复 8# Shell_HAT
默默的笑 +1




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2