我尝试了几种选择,但对我的情况不起作用。我的要求是 假设我在文件中有一个参数,并且想要捕获以下详细信息并运行shell脚本(ksh)。
PARAMETR=aname1:7,aname2:5
该参数包含两个用逗号分隔的值,每个值用冒号分隔。
因此,想要像将字符串匹配为aname1
一样处理它,然后同时在不同的变量$v1=aname1
和$v2=7
中打印。如果将字符串搜索为aname2
,然后搜索$v1=aname2
和$v2=5
,则其他值也是如此。
先谢谢您。
答案 0 :(得分:1)
这将满足您的要求
#!/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
希望它能提供帮助
答案 1 :(得分:0)
首先将线分成两组,然后处理每组。
import pandas as pd
datadict = {
'Time':['2018-12-10 20:00:25.855',
'2018-12-10 20:09:26',
'2018-12-10 20:13:27.31',
'2018-12-10 20:23:28'],
}
df = pd.DataFrame(datadict)
df['Time'] = [row[11:row.find('.')] if '.' in row else row[11:] for row in df['Time']]
print (df)
Time
0 20:00:25
1 20:09:26
2 20:13:27
3 20:23:28
结果:
echo "${PARAMETR}" | tr "," "\n" | while IFS=: read -r v1 v2; do
echo "v1=$v1 and v2=$v2"
done
答案 2 :(得分:0)
我如下使用。
specialList=$(echo "${SPECIAL_DB_CASE}" | tr '[:upper:]' '[:lower:]' |grep -E -o "${ORACLE_SID}.{0,2}")
specialListdb=$(echo ${specialList}|cut -d: -f1)
specialList_r=$(echo ${specialList}|cut -d: -f2)
但是新问题是即时更新,脚本未按计划从cron执行。