任何人都可以在grep语句中看到我做错了吗?我想我只是错过了逃脱角色。
for i in "${!PORTARR[@]}"; do
grep \<td\>"${!PORTARR[i]}"\<\/td\> tmp/portlist >> databases/ports.db
done
不幸的是,这不会起作用。这最终是我想要做的。
从这个字符串:
<tr><td>4</td><td>TCP</td><td>UDP</td><td>Unassigned</td><td>Official</td></tr>
我需要得到这个:
4,Unassigned
答案 0 :(得分:3)
我怀疑您打算写${PORTARR[i]}
(i
的{{1}}元素而不是PORTARR
(由{{1}命名的变量的值${!PORTARR[i]}
)的元素;这样:
i
但我也建议其他一些调整:
PORTARR
更新:对于您更新的问题,我认为您最好使用真正的编程语言,例如Perl:
for i in "${!PORTARR[@]}"; do
grep \<td\>"${!PORTARR[i]}"\<\/td\> tmp/portlist >> databases/ports.db
done
(免责声明:未经测试。)