免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2734 | 回复: 10
打印 上一主题 下一主题

把某个目录下全部的 .bx文件 修改为 .cpp文件 该怎么作, [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-25 13:42 |只看该作者 |倒序浏览
我想用awk -F. 把“.”设置为分割符,

但是 没办法确定扩展名在第几个域下,因为目录是多级的,每级个目录下都有文件

论坛徽章:
0
2 [报告]
发表于 2007-01-25 13:54 |只看该作者
try
  1. find urpath -type f -name "*.bx" |sed 's,\(.*\).bx,mv & \1.cpp,' |sh
复制代码

论坛徽章:
0
3 [报告]
发表于 2007-01-25 14:09 |只看该作者
find 你的目录 -type f -name "*.bx" | awk '{myobjstr=$0; sub(/\.bx$/,".cpp",myobjstr); mycmd="mv \"" $0 "\" \"" myobjstr "\""; system(mycmd); }'

[ 本帖最后由 doctorjxd 于 2007-1-25 14:15 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-01-25 15:00 |只看该作者
高深,学习中!

论坛徽章:
0
5 [报告]
发表于 2007-01-25 15:02 |只看该作者
已经有人回答了,谢谢

我最终也实现了 ,是这样的(麻烦一些,呵呵):


  1. find|grep -w c |sed s/.c//g|awk '{MV = "mv"};{C = ".c"};{ CPP=".cpp"}; {print MV, $1 C , $1 CPP}'|sh
复制代码

[ 本帖最后由 net_robber 于 2007-1-26 11:10 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-01-25 15:14 |只看该作者
乱入一下...rename可以更简单

  1. find . -type f -name "*.bx" | xargs rename .cpp .bx
复制代码

论坛徽章:
0
7 [报告]
发表于 2007-01-25 15:18 |只看该作者
  1. cd 那个目录
  2. find . -type f -name "*.bx" | sed 's/\(.*\).bx$/mv & \1.cpp/g'
复制代码

论坛徽章:
1
狮子座
日期:2013-12-05 16:04:37
8 [报告]
发表于 2007-01-25 15:40 |只看该作者
楼上几位好强啊.顶.学习中.

论坛徽章:
0
9 [报告]
发表于 2007-01-25 16:03 |只看该作者
sed 's,\(.*\).bx,mv & \1.cpp,'


\(.*\). 什么意思
& \1.cpp,什么意思????

论坛徽章:
0
10 [报告]
发表于 2007-01-26 11:22 |只看该作者
我修改后,最终运行无误的版本如下




  1. #!bin/bash


  2. find  $PWD -type f -name '*\.cpp' |sed s/'\.cpp'//g|awk '{MV = "mv"};{C = "\.c"};{ CPP="\.cpp"}; {print MV, $1 CPP , $1 C}'|sh

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP