免费注册 查看新帖 |

Chinaunix

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

【已解决】求一个筛选文件夹的shell或者批处理,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-30 18:56 |只看该作者 |正序浏览
本帖最后由 cocke 于 2011-09-08 13:53 编辑

我有一个文本name.txt,内容如下:
1.txt, one
2.txt ,one
3.txt ,two
11.txt ,three
5.txt ,four
现在想做的是,在本目录下生成one文件夹并将1.txt,2.txt移动到one目录里;
生成two目录,并将3.txt移到two目录里,生成three目录,将11.txt移动到three目录中;生成four目录,将5.txt移动到four目录中。
name.txt里面的内容以逗号为分割符,请各位帮忙,谢谢!

论坛徽章:
0
15 [报告]
发表于 2012-05-21 14:22 |只看该作者
来个批处理版的
  1. C:\Users\userss\Desktop\myconfigs\test>tree /f
  2. 卷 win7 的文件夹 PATH 列表
  3. 卷序列号为 00000200 DA97:9C24
  4. C:.
  5. │  name.txt

  6. ├─four
  7. │      5.txt

  8. ├─one
  9. │      1.txt

  10. ├─three
  11. │      11.txt

  12. └─two
  13.         3.txt


  14. C:\Users\userss\Desktop\myconfigs\test>for /f "delims=, tokens=1,2" %x in (name.
  15. txt) do mkdir %y && cd.>%x && xcopy %x %y&&del %x
复制代码

论坛徽章:
0
14 [报告]
发表于 2011-04-01 16:19 |只看该作者
不算太长。。。
for i in `cat name.txt`;do mkdir ${i#*,}&>/dev/null;mv ${i%,*} ${i#*,};done

论坛徽章:
0
13 [报告]
发表于 2011-04-01 15:56 |只看该作者
本帖最后由 cocke 于 2011-04-01 16:00 编辑

3楼,5楼,9楼,12楼的都能实现,谢谢大家。
当然也谢谢其他童鞋的热心回复,2楼和8楼的1.txt,2.txt文件都是touch的新的,改变了原来的文件内容,不过还是要谢谢大家的回复。

论坛徽章:
0
12 [报告]
发表于 2011-03-31 15:05 |只看该作者
回复 1# cocke


    echo -n 'please input the file:'
read an

filename=$(awk 'BEGIN{FS=","}{print $1}' $an)

for var in $(echo "$filename")
do
        i=$(grep "^$var" $an|awk 'BEGIN{FS=","}{print $2}')
        mkdir $i>/dev/null 2>&1

        touch $var&&mv ./$var $i
done

~

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
11 [报告]
发表于 2011-03-31 11:36 |只看该作者
回复 9# 昭襄王


    这个酷

论坛徽章:
0
10 [报告]
发表于 2011-03-31 11:33 |只看该作者
昭襄王 发表于 2011-03-31 11:03



   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2011-03-31 11:03 |只看该作者
  1. eval `sed 's:\(^.\+\),\(.\+$\):mkdir \2 ; mv \1 \2;:' name.txt`
复制代码

论坛徽章:
0
8 [报告]
发表于 2011-03-30 22:46 |只看该作者
  1. [root@fc9 aaa]# ls
  2. a
  3. [root@fc9 aaa]# cat a
  4. 1.txt,one
  5. 2.txt,one
  6. 3.txt,two
  7. 11.txt,three
  8. 5.txt,four
  9. [root@fc9 aaa]# IFS=,;while read f d;do [ -d $d ]||mkdir $d;touch $d/$f;done <a
  10. [root@fc9 aaa]# tree .
  11. .
  12. |-- a
  13. |-- four
  14. |   `-- 5.txt
  15. |-- one
  16. |   |-- 1.txt
  17. |   `-- 2.txt
  18. |-- three
  19. |   `-- 11.txt
  20. `-- two
  21.     `-- 3.txt

  22. 4 directories, 6 files
复制代码

论坛徽章:
0
7 [报告]
发表于 2011-03-30 22:25 |只看该作者
回复 7# ziyunfei


    图挂了
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP