linux 重定向到 数组中,将输出重定向到bash数组

你真的需要一个数组吗

庆典

$ipAddress="10.78.90.137;10.78.90.149"

$IFS=";"

$set -- $ipAddress

$echo $1

10.78.90.137

$echo $2

10.78.90.149

$unset IFS

$echo $@ #this is "array"

如果你想放入数组

$a=( $@ )

$echo ${a[0]}

10.78.90.137

$echo ${a[1]}

10.78.90.149

@OP,关于您的方法:将您的IFS设置为空格

$IFS=" "

$n=( $(grep -i ipaddress file | cut -d'=' -f2 | tr ';' ' ' | sed 's/"//g' ) )

$echo ${n[1]}

10.78.90.149

$echo ${n[0]}

10.78.90.137

$unset IFS

此外,没有必要使用这么多工具.你可以使用awk,或者只是使用bash shell

#!/bin/bash

declare -a arr

while IFS="=" read -r caption addresses

do

case "$caption" in

ipAddress*)

addresses=${addresses//[\"]/}

arr=( ${arr[@]} ${addresses//;/ } )

esac

done < "file"

echo ${arr[@]}

产量

$more file

foo

bar

ipAddress="10.78.91.138;10.78.90.150;10.77.1.101"

foo1

ipAddress="10.78.90.137;10.78.90.149"

bar1

$./shell.sh

10.78.91.138 10.78.90.150 10.77.1.101 10.78.90.137 10.78.90.149

呆子

$n=( $(gawk -F"=" '/ipAddress/{gsub(/\"/,"",$2);gsub(/;/," ",$2) ;printf $2" "}' file) )

$echo ${n[@]}

10.78.91.138 10.78.90.150 10.77.1.101 10.78.90.137 10.78.90.149

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值