字符串捕获并打印下一个字符。

String capturing and print the next characters.

我尝试了几个选项,但对我的情况不起作用。我的要求是.. 假设我在文件中有一个参数并且想要捕获如下详细信息和 运行 一个 shell 脚本 (ksh)。

PARAMETR=aname1:7,aname2:5

该参数包含 2 个以逗号分隔的值,每个值以冒号分隔。

所以,想要处理它,就好像字符串与 aname1 匹配一样,然后在不同的变量 $v1=aname1$v2=7 中打印。如果字符串搜索为 aname2 然后 $v1=aname2$v2=5.

,则同样适用于其他值

提前谢谢你。

这将满足您的要求

    #!/bin/ksh

    typeset -A valueArray

    PARAMETR=aname1:7,aname2:5

    paramArray=(${PARAMETR//,/ })

    for ((i=0;i<=${#paramArray[@]};i++)); do
            valueArray[${paramArray[$i]%:*}]=${paramArray[$i]#*:}
    done

    for j in ${!valueArray[@]}; do
            print "$j = ${valueArray[$j]}"
    done

希望能帮到你

首先将线分成两组,然后处理每组。

echo "${PARAMETR}" | tr "," "\n" | while IFS=: read -r v1 v2; do
  echo "v1=$v1 and v2=$v2"
  done

结果:

v1=aname1 and v2=7
v1=aname2 and v2=5