我在foo.txt文件中有如下模式
|eth0:9:8|eth1:7:0|
在循环中,我有一个变量,在每次迭代中分别具有eth0、eth1等值。
根据变量的值,比如eth0,我需要值9和8
如果是eth1,我需要值7和0
最佳答案
像这样的事情应该行得通。您需要的值存储在这里的var1
和var2
中。
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