字符串捕获并打印下一个字符。
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
我尝试了几个选项,但对我的情况不起作用。我的要求是.. 假设我在文件中有一个参数并且想要捕获如下详细信息和 运行 一个 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