今天遇到的源码使用了变态的宏,直接对参数进行宏处理,使得我的vim插件几乎全废,只能想办法将宏给替换进去。

#!/bin/bash

find  . -type f -name '*.c' | xargs sed -i 's/.P1(\(.*\),\(.*\))/(\1 \2)/g'

find  . -type f -name '*.c' | xargs sed -i 's/.P2(\(.*\),\(.*\),\(.*\),\(.*\))/(\1 \2,\3 \4)/g'

find  . -type f -name '*.c' | xargs sed -i 's/.P3(\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\))/(\1 \2,\3 \4,\5 \6)/g'

find  . -type f -name '*.c' | xargs sed -i 's/.P4(\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\))/(\1 \2,\3 \4,\5 \6,\7 \8)/g'

find  . -type f -name '*.c' | xargs sed -i 's/.P5(\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\))/(\1 \2,\3 \4,\5 \6,\7 \8,\9 \10)/g'

find  . -type f -name '*.c' | xargs sed -i 's/.P6(\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\))/(\1 \2,\3 \4,\5 \6,\7 \8,\9 \10,\11 \12)/g'

find  . -type f -name '*.c' | xargs sed -i 's/.P7(\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\),\(.*\))/(\1 \2,\3 \4,\5 \6,\7 \8,\9 \10,\11 \12,\13 \14)/g'

# 去掉PROT
find . -type f -name '*.c' | xargs sed -i 's/PROT((\(.*\)))/(\1)/g'

Sed是个好东西的更多相关文章

  1. Linux(3):linux目录结构

    查看系统版本: [root@neo ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@neo ~]# uname -r 2.6. ...

  2. 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od

    awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk ''  | output 1.首先要知道形式 awk 'command' fi ...

  3. Sed、Awk单行脚本快速参考

    文本间隔: # 在每一行后面增加一空行 sed G awk '{printf("%s\n\n",$0)}' # 将原来的所有空行删除并在每一行后面增加一空行. # 这样在输出的文本 ...

  4. Linux常用命令:sed

    本文记录的是自己在学习<Linux私房菜>中正则表达式的笔记. 关于行尾符$ 如果文件本身没有内容,比如使用touch新建的文件,那么$将会没有意义.例如下面操作: 先使用touch新建了 ...

  5. 【转】sed 简明教程

    本文转自:http://coolshell.cn/articles/9104.html awk于1977年出生,今年36岁本命年,sed比awk大2-3岁,awk就像林妹妹,sed就是宝玉哥哥了.所以 ...

  6. 运维工作中sed常规操作命令梳理

    sed是一个流编辑器(stream editor),一个非交互式的行编辑器.它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间",接着用sed命令处理缓冲 ...

  7. sed 4个功能

    [root@lanny test]# cat test.txt test liyao lanny 经典博文: http://oldboy.blog.51cto.com/2561410/949365 h ...

  8. [转载]sed 简明教程

    文章转载自酷壳 – CoolShell.cn,作者:陈皓,地址http://coolshell.cn/articles/9104.html awk于1977年出生,今年36岁本命年,sed比awk大2 ...

  9. fw:sed的高级用法

    转的,找不到原创了.... sed高级用法 <收藏> 首先,应该明白模式空间的定义.模式空间就是读入行所在的缓存,sed对文本行进行的处理都是在这个缓存中进行的.这对接下来 的学习是有帮助 ...

随机推荐

  1. 基于.NET的微软ORM框架视频教程(Entity Framework技术)

    基于.NET的微软ORM框架视频教程(Entity Framework技术) 第一讲  ORM映射 第二讲 初识EntifyFramework框架 第三讲 LINQ表达式查询 第四讲 LINQ方法查询 ...

  2. int与string之间的类型转换--示例

    package demo; public class IntDemo { public static void main(String[] args) { // String-->int 类型转 ...

  3. Android的UI设计

    一.Android控件 1.TextView 属性:id.width.height.gravity(对齐方式).textSize(文字大小).textColor(文字颜色) 2.Button 属性:i ...

  4. Linux基本操作1 - 设备操作

    Linux开发的过程中,肯定会使用到很多设备,所以对设备的挂载卸载是一个很基本的操作. Linux对设备的默认定义如下: 一.Linux中的硬件设备号     设 备          设 备 号   ...

  5. Python学习笔记(2)

    变量 变量名就像我们现实社会的名字,把一个值赋值给一个名字时,它会存储在存储中,称之为变量(Variable),在大多数语言中,都把这种行为称为“给变量赋值”或“把值存储在变量中”. 而Python与 ...

  6. Linux基础※※※※如何使用Git in Linux(二)

    参考资料: 1. http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 2. Git-简 ...

  7. ie7 父元素宽度自适应且为浮动的话 子元素的宽度将不能按比例设置问题

    好久没切图,昨天遇到个浏览器兼容的老问题,在ie7下,父元素设置浮动后,其宽度是自适应的,子元素的宽度若没有确定则将显示最小宽度,即文本所占的宽度. 正常其他浏览器显示如下: ie7中显示效果如下: ...

  8. (六)ICMP、ping

    ping命令是ICMP协议 127.0.0.1 ifconfig -all

  9. 【转】 memset()的效率以及源码分析

    void *memset(void *s, int ch, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常 ...

  10. android mvvm

    android studio 需要gradle 1.5.0以上才支持 dependencies { classpath 'com.android.tools.build:gradle:1.5.0'} ...