首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

sed 用法请问一下

2012-04-08 
sed 用法请教一下啊代码中有多行代码(宏)格式如下:TS_LOG_DEBUG(LOG_CATEGORY_ID_HW, *)比如:TS_LOG_DEBU

sed 用法请教一下啊
代码中有多行代码(宏)格式如下:
TS_LOG_DEBUG(LOG_CATEGORY_ID_HW, *);
比如:
TS_LOG_DEBUG(LOG_CATEGORY_ID_HW, "FilterProc instance" << ip_instanceData);
TS_LOG_DEBUG(LOG_CATEGORY_ID_HW, "Test HardWear" << m);
总之第二个参数不固定,

我想这一行替换为2行,如下:
TS_LOG_DEBUG(LOG_CATEGORY_ID_SW, *);
TS_LOG_DEBUG(LOG_CATEGORY_ID_HW, *);
即:在行之前插入一行,新行中的第一个参数中的HW修改为SW,
比如:
TS_LOG_DEBUG(LOG_CATEGORY_ID_HW, "FilterProc instance" << ip_instanceData);
=》
TS_LOG_DEBUG(LOG_CATEGORY_ID_SW, "FilterProc instance" << ip_instanceData);
TS_LOG_DEBUG(LOG_CATEGORY_ID_HW, "FilterProc instance" << ip_instanceData);

用sed怎么一下搞定:
sed -i "s/sour/replac/g" code.C

Thanks

[解决办法]

C/C++ code
owenliang@linux-7lsl:~/csdn/src> echo "TS_LOG_DEBUG(LOG_CATEGORY_ID_HW, "FilterProc instance" << ip_instanceData);" | sed -rn "/LOG_CATEGORY_ID_HW/ {> h> s/(.*)CATEGORY_ID_HW(.*)/\1CATEGORY_ID_SW\2/g> G> p> }"TS_LOG_DEBUG(LOG_CATEGORY_ID_SW, FilterProc instance << ip_instanceData);TS_LOG_DEBUG(LOG_CATEGORY_ID_HW, FilterProc instance << ip_instanceData);
[解决办法]
Python code
sed -i '/TS_LOG_DEBUG(LOG_CATEGORY_ID_HW/{h;s/\(TS_LOG_DEBUG(LOG_CATEGORY_ID_\)HW/\1SW/g;p;g}' test.c 

热点排行