免费注册 查看新帖 |

Chinaunix

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

如何用shell遍历并显示一个目录下的所有文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-21 19:02 |只看该作者 |倒序浏览
请问各位高手,我如何用shell遍历并显示一个目录下的所有文件,目录下有多层目录
如我本地有temp文件夹,如何达到显示如下结果:
/temp/test/SOL_C8R4.HTML
/temp/test/SOL_C9.HTML
/temp/test/SOL_C9CHT91.HTML
/temp/test/SOL_C9CHT92.HTML
/temp/test/SOL_C9CHT93.HTML
/temp/test/SOL_C9E4.HTML
/temp/test/SOL_C9R0.HTML
/temp/test/SOL_C9R1.HTML
/temp/test/SOL_C9R2.HTML
/temp/test/SOL_C9R3.HTML
/temp/test/SOL_C9R4.HTML
/temp/test/SOL_WELCOME.HTML
/temp/test/_blank.htm
/temp/jss/bsscdht1.js
/temp/jss/bsscdhtm.js
/temp/image/bsscnav1.gif
/temp/image/bsscnav2.gif
/temp/image/bsscnav3.gif
/temp/image/bsscnav4.gif
/temp/image/bsscnav5.gif
/temp/aa/test/bsscnav8.gif
/temp/aa/test/bssctab0.gif
/temp/test/css/smph_ns.css
/temp/test/css/smphelp.css
/temp/test/zip/webhelp.zip
遍历出来后替换成:
/usr/local/test/SOL_C8R4.HTML
/usr/local/test/SOL_C9.HTML
/usr/local/test/SOL_C9CHT91.HTML
/usr/local/test/SOL_C9CHT92.HTML
/usr/local/test/SOL_C9CHT93.HTML
/usr/local/test/SOL_C9E4.HTML
/usr/local/test/SOL_C9R0.HTML
/usr/local/test/SOL_C9R1.HTML
/usr/local/test/SOL_C9R2.HTML
/usr/local/test/SOL_C9R3.HTML
/usr/local/test/SOL_C9R4.HTML
/usr/local/test/SOL_WELCOME.HTML
/usr/local/test/_blank.htm
/usr/local/jss/bsscdht1.js
/usr/local/jss/bsscdhtm.js
/usr/local/image/bsscnav1.gif
/usr/local/image/bsscnav2.gif
/usr/local/image/bsscnav3.gif
/usr/local/image/bsscnav4.gif
/usr/local/image/bsscnav5.gif
/usr/local/aa/test/bsscnav8.gif
/usr/local/aa/test/bssctab0.gif
/usr/local/test/css/smph_ns.css
/usr/local/test/css/smphelp.css
/usr/local/test/zip/webhelp.zip

论坛徽章:
0
2 [报告]
发表于 2006-11-21 19:09 |只看该作者
什么叫替换?您只想得到下面的那些输出?

论坛徽章:
0
3 [报告]
发表于 2006-11-21 19:10 |只看该作者
没写明白,把遍历结果存为文件,然后对这个文件内容进行修改变为这样,请各位大侠给个招:
修改/temp/test/SOL_C8R4.HTML     到 usr/local/test/SOL_C8R4.HTML
修改/temp/test/SOL_C9.HTML       到 usr/local/test/SOL_C9.HTML
修改/temp/test/SOL_C9CHT91.HTML  到 usr/local/test/SOL_C9CHT91.HTML
修改/temp/test/SOL_C9CHT92.HTML  到 usr/local/test/SOL_C9CHT92.HTML
修改/temp/test/SOL_C9CHT93.HTML  到 usr/local/test/SOL_C9CHT93.HTML
修改/temp/test/SOL_C9E4.HTML     到 usr/local/test/SOL_C9E4.HTML
修改/temp/test/SOL_C9R0.HTML     到 usr/local/test/SOL_C9R0.HTML
修改/temp/test/SOL_C9R1.HTML     到 usr/local/test/SOL_C9R1.HTML
修改/temp/test/SOL_C9R2.HTML     到 usr/local/test/SOL_C9R2.HTML
修改/temp/test/SOL_C9R3.HTML     到 usr/local/test/SOL_C9R3.HTML
修改/temp/test/SOL_C9R4.HTML     到 usr/local/test/SOL_C9R4.HTML
修改/temp/test/SOL_WELCOME.HTML  到 usr/local/test/SOL_WELCOME.HTML
修改/temp/test/_blank.htm        到 usr/local/test/_blank.htm
修改/temp/jss/bsscdht1.js        到 usr/local/jss/bsscdht1.js
修改/temp/jss/bsscdhtm.js        到 usr/local/jss/bsscdhtm.js
修改/temp/image/bsscnav1.gif     到 usr/local/image/bsscnav1.gif
修改/temp/image/bsscnav2.gif     到 usr/local/image/bsscnav2.gif
修改/temp/image/bsscnav3.gif     到 usr/local/image/bsscnav3.gif
修改/temp/image/bsscnav4.gif     到 usr/local/image/bsscnav4.gif
修改/temp/image/bsscnav5.gif     到 usr/local/image/bsscnav5.gif
修改/temp/aa/test/bsscnav8.gif   到 usr/local/aa/test/bsscnav8.gif
修改/temp/aa/test/bssctab0.gif   到 usr/local/aa/test/bssctab0.gif
修改/temp/test/css/smph_ns.css   到 usr/local/test/css/smph_ns.css
修改/temp/test/css/smphelp.css   到 usr/local/test/css/smphelp.css
修改/temp/test/zip/webhelp.zip   到 usr/local/test/zip/webhelp.zip

论坛徽章:
0
4 [报告]
发表于 2006-11-21 19:11 |只看该作者
对目标目录find两次, 第一次找目录, mkdir
第二次找文件 cp 或者 mv

使用sed之类的对中间的路径进行变换.

论坛徽章:
0
5 [报告]
发表于 2006-11-21 19:11 |只看该作者
原帖由 一梦如是 于 2006-11-21 19:09 发表
什么叫替换?您只想得到下面的那些输出?

对,只是想得到输出.

论坛徽章:
0
6 [报告]
发表于 2006-11-21 19:14 |只看该作者
原帖由 Edengundam 于 2006-11-21 19:11 发表
对目标目录find两次, 第一次找目录, mkdir
第二次找文件 cp 或者 mv

使用sed之类的对中间的路径进行变换.

对不起,刚才没写明白,我只是想生成类似上面二楼的那个文件.

论坛徽章:
0
7 [报告]
发表于 2006-11-21 19:21 |只看该作者
find /temp -type f | tee ~/middle.txt | sed 's:^/temp:usr/local:'


吃饭切了...不知道是不是你的意思...middle.txt是没有修改的目录列表... 修改的结果打在屏幕了上, 接下来都好说了

[ 本帖最后由 Edengundam 于 2006-11-21 19:23 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-11-21 19:22 |只看该作者
遍历目录下的文件我已经能做到了,请问如何把文件内容如:
/temp/test/SOL_C8R4.HTML
修改成:
修改/temp/test/SOL_C8R4.HTML     到 usr/local/test/SOL_C8R4.HTML

论坛徽章:
0
9 [报告]
发表于 2006-11-22 09:16 |只看该作者
原帖由 Edengundam 于 2006-11-21 19:21 发表
find /temp -type f | tee ~/middle.txt | sed 's:^/temp:usr/local:'


吃饭切了...不知道是不是你的意思...middle.txt是没有修改的目录列表... 修改的结果打在屏幕了上, 接下来都好说了

这里面不是有sed吗?

论坛徽章:
0
10 [报告]
发表于 2006-11-22 09:24 |只看该作者
原帖由 海天 于 2006-11-22 09:16 发表

这里面不是有sed吗?


我的sed怎么了??写错了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP