免费注册 查看新帖 |

Chinaunix

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

一个文件拷贝的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-14 09:55 |只看该作者 |倒序浏览
现在有个如下需求:

要把目录A下面的子目录里的某个文件,拷贝到目录B下的相应子目录里,并改变后缀名。
感觉要用find -name abc0.* -exec ...  但不知道应该如何得到文件名中的一部分。

例如:
拷贝如下内容
A/A1/aaa/abc0.xyz
A/A1/bbb/abc0.cde
A/A1/ccc/abc0.ehf

到目录B
B/A1/abc.0
B/A1/abc.1
B/A1/abc.2


先谢谢大家了!

论坛徽章:
0
2 [报告]
发表于 2010-04-14 10:14 |只看该作者
#!/bin/bash
n=0
for file in `find -name "abc0*"`
do
    newfile=${file##*/}
    cp -a "$file" "B/A1/${newfile%0*}.$n"
    ((n++))
   
done

论坛徽章:
0
3 [报告]
发表于 2010-04-14 10:22 |只看该作者
本帖最后由 lkk2003rty 于 2010-04-14 10:23 编辑

回复 1# raymark


    p=1;for i in abc0.*;do cp $i B/A1/ &&mv $i ${i/.*/}$p.bak; p=$((p+1)); done

论坛徽章:
0
4 [报告]
发表于 2010-04-14 10:45 |只看该作者
谢谢各位的回复,还有一点问题,就是需要导出子目录A0, A1,
并且后缀的增长,同一级子目录中从0开始,比如A0中的abc.0 abc.1
换到目录A1时,abc的后缀又从0,1... 开始,谢谢!

源目录:
A/A0/aaa/abc0.xyz
A/A0/bbb/abc0.cde
A/A1/ccc/abc0.ehf
A/A1/ccc/abc0.ehf

目标目录:
B
B/A0/abc.0
B/A0/abc.1
B/A1/abc.0
B/A1/abc.1

论坛徽章:
0
5 [报告]
发表于 2010-04-14 11:02 |只看该作者
回复 2# iori809


    拷贝路径错了吧 !

论坛徽章:
0
6 [报告]
发表于 2010-04-14 11:04 |只看该作者
本帖最后由 springwind426 于 2010-04-14 11:07 编辑

  1. find A -type f | awk -F'/' '{f0=$0;f1=$NF;sub(/.\..*$/,"."a[$2]++,f1);print "cp -a " f0 " B/"$2"/"f1}'

  2. 看看是不是要求的,如果是,就在后面加一个 | sh

复制代码

论坛徽章:
0
7 [报告]
发表于 2010-04-14 11:56 |只看该作者
回复 6# springwind426


cool!  这正式我想要的!谢谢!

论坛徽章:
0
8 [报告]
发表于 2010-04-14 17:10 |只看该作者
  1. #!/usr/bin/ksh
  2. for file in `find . -name "abc0*"`
  3. do
  4.     newfile=${file##*/}
  5.     newpath=`echo "$file"|awk -F '/' '{print $3}'`
  6.     if [ "$newpath" != "$tmppath" ]; then
  7.     n=0
  8.     tmppath=$newpath
  9.     else
  10.     n=`expr $n + 1`
  11.     fi
  12.     cp "$file" "B/$newpath/${newfile%0*}.$n"
  13. done
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP