替换某个目录下.c文件内容

1. 找出所有.c文件

leon$  find ./ -maxdepth 3 -type f | grep "\.c"
./misc/nv_net_udp.c
./nv_comm_system.c
./util/nv_report_event.c
./util/nv_linklist_connect_info.c
./transport/net_udp.c
./transport/net_tcp.c
./transport/net_secure_tcp.c
./session/nv_client_session.c
./session/nv_client_accept.c
./session/nv_app_srv_session.c
./session/nv_tran_srv_session.c
./session/nv_session.c
./connect/nv_tran_srv_connect.c
./connect/nv_connect.c
./connect/nv_app_srv_connect.c
./connect/nv_picture_srv_connect.c

2. 需要被批量替换的内容

../../ 替换为 ./

3.查找 需要被替换的内容

leon$ for i in `find ./ -maxdepth 3 -type f | grep "\.c"`; do grep "\.\./\.\./" $i ; done
#include "../../network/misc/nv_net_udp.h"
#include "../../network/session/nv_app_srv_session.h"
#include "../../network/transport/net_udp.h"
#include "../../network/nv_comm_system.h"
#include "../../network/misc/nv_net_udp.h"
#include "../../network/connect/nv_app_srv_connect.h"
#include "../../network/session/nv_client_accept.h"
#include "../../network/util/nv_linklist_connect_info.h"
#include "../../network/session/nv_app_srv_session.h"
#include "../../network/transport/net_secure_tcp.h"
#include "../../network/util/nv_report_event.h"
#include "../../network/util/nv_linklist_connect_info.h"
#include "../../network/transport/net_tcp.h"
#include "../../network/transport/net_udp.h"
#include "../../network/transport/net_tcp.h"
#include "../../network/connect/nv_app_srv_connect.h"
#include "../../network/connect/nv_tran_srv_connect.h"
#include "../../network/connect/nv_picture_srv_connect.h"
#include "../../network/transport/net_tcp.h"
#include "../../network/transport/net_secure_tcp.h"
#include "../../network/connect/nv_app_srv_connect.h"
#include "../../network/connect/nv_tran_srv_connect.h"
#include "../../network/connect/nv_picture_srv_connect.h"
#include "../../network/session/nv_client_session.h"
#include "../../network/util/nv_linklist_connect_info.h"
#include "../../network/transport/net_tcp.h"
#include "../../network/nv_comm_system.h"
#include "../../network/session/nv_client_accept.h"
#include "../../network/session/nv_client_session.h"
#include "../../network/util/nv_linklist_connect_info.h"
#include "../../network/transport/net_tcp.h"
#include "../../network/nv_comm_system.h"
#include "../../network/session/nv_app_srv_session.h"
#include "../../network/connect/nv_app_srv_connect.h"
#include "../../network/util/nv_linklist_connect_info.h"
#include "../../network/transport/net_udp.h"
#include "../../network/misc/nv_net_udp.h"
#include "../../network/util/nv_report_event.h"
#include "../../network/nv_comm_system.h"
#include "../../network/session/nv_tran_srv_session.h"
#include "../../network/session/nv_client_session.h"
#include "../../network/connect/nv_app_srv_connect.h"
#include "../../network/connect/nv_tran_srv_connect.h"
#include "../../network/session/nv_client_accept.h"
#include "../../network/connect/nv_picture_srv_connect.h"
#include "../../network/transport/net_tcp.h"
#include "../../network/transport/net_secure_tcp.h"
#include "../../network/session/nv_app_srv_session.h"
#include "../../network/connect/nv_tran_srv_connect.h"
#include "../../network/session/nv_tran_srv_session.h"
#include "../../network/transport/net_tcp.h"
#include "../../network/util/nv_linklist_connect_info.h"
#include "../../network/nv_comm_system.h"
#include "../../network/transport/net_tcp.h"
#include "../../network/connect/nv_app_srv_connect.h"
#include "../../network/session/nv_app_srv_session.h"
#include "../../network/connect/nv_picture_srv_connect.h"
#include "../../network/transport/net_secure_tcp.h"
#include "../../network/transport/net_tcp.h"
#include "../../network/session/nv_app_srv_session.h"

4. 替换

for i in `find ./ -maxdepth 3 -type f | grep "\.c"`; do sed -i 's/\.\.\/\.\.\//\.\//g' $i ; done

5. 查看替换后的内容

leon$  for i in `find ./ -maxdepth 3 -type f | grep "\.c"`; do grep "\.\/" $i ; done
#include "./network/misc/nv_net_udp.h"
#include "./network/session/nv_app_srv_session.h"
#include "./network/transport/net_udp.h"
#include "./network/nv_comm_system.h"
#include "./network/misc/nv_net_udp.h"
#include "./network/connect/nv_app_srv_connect.h"
#include "./network/session/nv_client_accept.h"
#include "./network/util/nv_linklist_connect_info.h"
#include "./network/session/nv_app_srv_session.h"
#include "./network/transport/net_secure_tcp.h"
#include "./network/util/nv_report_event.h"
#include "./network/util/nv_linklist_connect_info.h"
#include "./network/transport/net_tcp.h"
#include "./network/transport/net_udp.h"
#include "./network/transport/net_tcp.h"
#include "./network/connect/nv_app_srv_connect.h"
#include "./network/connect/nv_tran_srv_connect.h"
#include "./network/connect/nv_picture_srv_connect.h"
#include "./network/transport/net_tcp.h"
#include "./network/transport/net_secure_tcp.h"
#include "./network/connect/nv_app_srv_connect.h"
#include "./network/connect/nv_tran_srv_connect.h"
#include "./network/connect/nv_picture_srv_connect.h"
#include "./network/session/nv_client_session.h"
#include "./network/util/nv_linklist_connect_info.h"
#include "./network/transport/net_tcp.h"
#include "./network/nv_comm_system.h"
#include "./network/session/nv_client_accept.h"
#include "./network/session/nv_client_session.h"
#include "./network/util/nv_linklist_connect_info.h"
#include "./network/transport/net_tcp.h"
#include "./network/nv_comm_system.h"
#include "./network/session/nv_app_srv_session.h"
#include "./network/connect/nv_app_srv_connect.h"
#include "./network/util/nv_linklist_connect_info.h"
#include "./network/transport/net_udp.h"
#include "./network/misc/nv_net_udp.h"
#include "./network/util/nv_report_event.h"
#include "./network/nv_comm_system.h"
#include "./network/session/nv_tran_srv_session.h"
#include "./network/session/nv_client_session.h"
#include "./network/connect/nv_app_srv_connect.h"
#include "./network/connect/nv_tran_srv_connect.h"
#include "./network/session/nv_client_accept.h"
#include "./network/connect/nv_picture_srv_connect.h"
#include "./network/transport/net_tcp.h"
#include "./network/transport/net_secure_tcp.h"
#include "./network/session/nv_app_srv_session.h"
#include "./network/connect/nv_tran_srv_connect.h"
#include "./network/session/nv_tran_srv_session.h"
#include "./network/transport/net_tcp.h"
#include "./network/util/nv_linklist_connect_info.h"
#include "./network/nv_comm_system.h"
#include "./network/transport/net_tcp.h"
#include "./network/connect/nv_app_srv_connect.h"
#include "./network/session/nv_app_srv_session.h"
#include "./network/connect/nv_picture_srv_connect.h"
#include "./network/transport/net_secure_tcp.h"
#include "./network/transport/net_tcp.h"
#include "./network/session/nv_app_srv_session.h"

6. 删除匹配行

for i in `find ./ -maxdepth 3 -type f | grep "\.c"`; do sed -i '/\.\.\/\.\.\//d' $i ; done

7.拓展

将 含有字符串"/mnt/nfs/zhuqh/goke/nvc-hi3518-kernel/linux-3.4.y" 替换为 "/opt/hi3518/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/kernel/linux-3.4.y
"
for i in `grep "/mnt/nfs/zhuqh/goke/nvc-hi3518-kernel/linux-3.4.y" * -nR |  cut -d ':' -f1`; do sed -i "s#/mnt/nfs/zhuqh/goke/nvc-hi3518-kernel/linux-3.4.y#/opt/hi3518/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/kernel/linux-3.4.y#g"  $i ; done

注意:这里使用 # 来代替 / 进行sed语法转义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值