简体   繁体   English

如何使用ksh93从数组中的元素中提取项目?

[英]how to pull items from an element in an array using ksh93?

I have the following file 我有以下文件

acc1:server1:server2:acc1234:blah:blah
acc2:server1:server5:acc4321:blah:blah
acc3:server1:server3:acc2222:blah:blah

Each line of the above file is an element in an array. 上面文件的每一行都是数组中的一个元素。 I only need to get the first three items so accX:serverX:serverX . 我只需要获取前三项,即accX:serverX:serverX

How can I pull out only the first three items of each element without the ":" using ksh93? 如何使用ksh93拔出每个元素的前三个项目而没有“:”呢?

Thanks! 谢谢!

Does this work for you: 这对您有用吗:

$ set -A myarr acc1:server1:server2:acc1234:blah:blah acc2:server1:server5:acc4321:blah:blah acc3:server1:server3:acc2222:blah:blah

$ $ for ele in ${myarr[@]}; do ele=${ele%:*:*:*}; echo ${ele//:/ }; done
acc1 server1 server2
acc2 server1 server5
acc3 server1 server3
     #!/bin/ksh

     file=~/kshinput.txt
     index=0

     while read line
     do
            myarray[$index]=${line%:*:*:*}
            ((index=index+1))
     done <"$file"


     for i in {0..$index}
     do
            echo "$i: ${myarray[$i]}"
     done

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM