【发布时间】:2011-12-03 23:53:09
【问题描述】:
鉴于我有这样的事情:
int val; struct node *mhm;
int val; struct node *next;
我想使用 sed、awk 或 grep 提取每一行的内容,以便它们读取:
init->val = val; init->mhm = mhm;
init->val = val; init->next = next;
grep -o 在新行上输出每个单独的结果,但我需要保留行结构(每组变量引用一个单独的东西)。
我目前使用的是 gnu sed 命令,但我只想输出替换后的字符串:
sed -re 's/([A-Za-z0-9_]*);/init->\1 = \1;/g'
上面的 sed 命令输出:
int init->val = val; struct node *init->mhm = mhm;
int init->val = val; struct node *init->next = next;
即使使用非贪婪修饰符,我也无法获得完整的正则表达式语句来成功选择每一行中的每个变量名。
【问题讨论】: