解析命令行值

parse command line values

我的脚本有问题,我似乎看不出问题出在哪里。

rules=$(echo "$result" | grep '^[[:space:]]\{2\}[0-9]\|^\*' | sed 's/^.//' | \
        awk '{ x = [=10=] "\n" x } END { printf "%s", x }' | awk '{print }')
numRules=$(echo "$rules" | wc -l)

这是我的脚本,下面的数据将是 $result

的值
ID Action Category From Hits 
---------------------------- 
100 deny trial1     herb 0
200 deny trial2222 herb.patrick 0
300 deny triaaaals herb.patrick.hernandez 0

我的目标是能够将 100、200、300 的 ID 放在 $rules 中,并且我能够获得此示例的 ID 总数:3 将是 $numRules 的正确 return。

$rules= 100 200 300
$numRules = 3

使用 GNU grep 和数组:

rules=($(grep -o '^[0-9]\+' file))
numRules=${#rules[@]}

echo ${rules[@]}
echo $numRules

输出:

100 200 300
3