使用bash中的grep使用正则表达式标识数组

时间:2017-07-22 13:32:53

标签: regex bash shell grep

我尝试编写 bash 脚本,将输入作为C文件,并使用 grep 正则表达式来识别和提取数组声明和定义以将其转储到终端上。

grep "[a-zA-Z][\0-9]" << $filename

但它似乎不起作用。

编辑1: 例如,如果我有以下C代码:

int main( void )
{
           int a[N], b[N], c[N];

           for (int i=0; i<N; i++)
           {
                      a [i] = -i;
                      b[i] = i * i;
            }
}

有没有办法在grep中使用正则表达式提取数组声明和定义?

1 个答案:

答案 0 :(得分:0)

我明白了。

for((i=1;i<=$arr;i++))
do
    temp=$( grep -m$i "[a-z][a-z][a-z][a-z]*\s[a-zA-Z][a-zA-Z0-9_]*\[[a-zA-Z0-9]*\]" < $filename | tail -n1 )
    echo "$i $temp"
done