我正在使用GRASS,但我对数字的一维向量有疑问。现在,我想打印该矢量的长度,因为我的输出看起来像这样:
(1,2,3,4,5,6,7,8,9 ,)什么时候应该看起来像这样:
(1,2,3,4,5,6,7,8,9)即,我不需要最后一个分隔符。有没有办法做到这一点?
我需要符合POSIX的解决方案;没有bashisms。
我的代码如下所示:
for i in $CATS
do
step=$step"$i,"
echo $step
g.region --overwrite vector="region_uspo_$i," save=regions_uspo
regions_uspos="region_$i,"
echo $regions_uspos
done
构建完字符串后,请删除最后一个逗号。
for …
done
step=${step%,}
regions_uspos=${regions_uspos%,}
${VARIABLE%PATTERM}
扩展到去除了VARIABLE
最短后缀匹配的值PATTERN}
。每个POSIX Shell都支持此构造。所有BusyBox配置也都支持它。
如果您需要中间的字符串而没有尾部逗号,则可以在循环内剥离尾部逗号。或者,通过在附加元素之前添加逗号来构建不带尾部逗号的字符串。为了避免出现逗号,请检测循环中的第一次迭代。
first=1
for … do
if [ -n "$first" ]; then
first=
else
step="$step,"
regions_uspos="$regions_uspos,"
fi
step="$step$i"
…
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句