我正在使用KornShell Scripting,我正在将文件拆分为数组
set -A fileArray $(< ${BTEQLOG} )
数组包含如下元素:
{RUN_ID,OPERATOR_ID,CYCLE_DES,PROJECTION_PROJECT_NME,ROW_CREATE_TSP,STATUS_DES,195777,req82565,NII,2016, - ,...}
我需要使用与{6} [0-9]模式匹配的元素,如上面的195777。我考虑过检查一下它是否是一个数字,
for l in ${fileArray[@]}
do
echo $l
if [[ $l -gt 10000 ]]; then
echo $l
fi
done
但我回来的只是RUN_ID: bad number
错误。
有没有办法使用正则表达式来获得我想要的东西?我上面的方式可能有用,但我更喜欢正则表达式只使用该实例。
我试过这个:
typeset -i line=$l
if [[ $line = {6}[0-9] ]]; then
echo $line;
fi
但遇到了与上面相同的bad number
错误。
答案 0 :(得分:0)
我不是100%确定这是否适用于ksh,但它适用于bash。
if [[ "$line" =~ '^[0-9]{6}$' ]]; then
echo "$line";
fi