2017-09-30 21 views
0

我有foo.txt的击外壳脚本获得图案匹配,并在线路

|eth0:9:8|eth1:7:0| 

在一个文件中像下面的图案在一个循环我有值的eth0可变取值,ETH1等分别在每次迭代中。

基于该变量的值,比方说的eth0我需要的值9和8 在eth1的的情况下,我需要值7和0

+3

欢迎来到StackOverflow。发布问题前,请参阅如何提问。 https://stackoverflow.com/questions/how-to-ask – swatchai

+1

请阅读https://stackoverflow.com/help/on-topic,http://stackoverflow.com/help/how-to-ask,http: //stackoverflow.com/help/dont-ask,http://stackoverflow.com/help/mcve并在发布更多Q​​之前参加[tour](http://stackoverflow.com/tour)。祝你好运。 – shellter

+0

*在一个循环中,我有一个变量* - 显示您的实际代码 – RomanPerekhrest

回答

0

像这样应该工作。您需要的值存储在var1var2这里。

TO_PARSE="|eth0:9:8|eth1:7:0|" 
declare -a eths=(eth0 eth1) 
for eth in "${eths[@]}"; do 
    parsed=$(echo "${TO_PARSE}" | \ 
      awk 'BEGIN{FS=":"; RS="|"}{print $1 " " $2 " " $3}' | \ 
      grep "${eth}") 
    var1=$(echo "${parsed}" | cut -f2 -d' ') 
    var2=$(echo "${parsed}" | cut -f3 -d' ') 
    echo "eth=${eth} var1=${var1} var2=${var2}" 
done