免费注册 查看新帖 |

Chinaunix

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

[文本处理] 以文件名第一个字段 [复制链接]

论坛徽章:
2
射手座
日期:2013-10-29 16:22:32丑牛
日期:2013-11-25 16:29:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-11 09:16 |只看该作者 |倒序浏览


我想以第一个_字段作为文件夹名 然后将这些相同文件保存到制定的目录





类似这样 咋写脚本啊!求教

QQ图片20141111091337.jpg (23.87 KB, 下载次数: 49)

QQ图片20141111091337.jpg

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
2 [报告]
发表于 2014-11-11 09:22 |只看该作者
本帖最后由 dn833 于 2014-11-11 13:33 编辑
  1. #!/bin/bash
  2. for dir in $(ls -1|awk -F '_' '!a[$1]++{print $1}')
  3. do mkdir $dir && mv ${dir}_* $dir
  4. done
复制代码

论坛徽章:
9
寅虎
日期:2013-12-02 12:49:22巨蟹座
日期:2014-07-18 18:13:34卯兔
日期:2014-07-25 14:43:08子鼠
日期:2014-07-26 10:10:51酉鸡
日期:2014-07-31 15:09:562015亚冠之本尤德科
日期:2015-05-19 09:27:382015亚冠之卡尔希纳萨夫
日期:2015-06-20 10:30:212015亚冠之阿尔纳斯尔
日期:2015-07-01 20:46:062015亚冠之城南
日期:2015-07-15 21:12:00
3 [报告]
发表于 2014-11-11 09:39 |只看该作者
本帖最后由 lifayi2008 于 2014-11-11 09:39 编辑
  1. #!/bin/bash

  2. for i in $(ls | grep -E '.*_.*')
  3. do
  4.     mkdir ${i//_*/}
  5.     mv ${i//_*/}?* ${i//_*/}
  6. done
复制代码

论坛徽章:
2
射手座
日期:2013-10-29 16:22:32丑牛
日期:2013-11-25 16:29:17
4 [报告]
发表于 2014-11-11 10:03 |只看该作者
回复 3# lifayi2008

Administrator@liuxueqin ~/liuch/backup/day_backup
$ ls | grep -E '.*_.*'
hlcjhd_sql20141107.tar.gz
hlcjhd_sql20141108.tar.gz
hlcjhd_sql20141109.tar.gz
hlcjhd_sql20141110.tar.gz
hlhd_sql20141107.tar.gz
hlhd_sql20141108.tar.gz
hlhd_sql20141109.tar.gz
hlhd_sql20141110.tar.gz
niandu12_sql20141107.tar.gz
niandu12_sql20141108.tar.gz
niandu12_sql20141109.tar.gz
niandu12_sql20141110.tar.gz


为啥我执行是这样了?但是文件确实是转移了

   
Administrator@liuxueqin ~/liuch/backup/day_backup
$ ./grept.sh
mkdir: 无法创建目录"hlcjhd": File exists
mv: 无法获取"hlcjhd?*" 的文件状态(stat): No such file or directory
mkdir: 无法创建目录"hlcjhd": File exists
mv: 无法获取"hlcjhd?*" 的文件状态(stat): No such file or directory
mkdir: 无法创建目录"hlcjhd": File exists

论坛徽章:
6
处女座
日期:2014-04-02 16:07:17酉鸡
日期:2014-04-14 10:09:22子鼠
日期:2014-04-17 11:57:30辰龙
日期:2014-09-01 17:14:08戌狗
日期:2014-10-28 12:25:54未羊
日期:2014-11-14 11:31:58
5 [报告]
发表于 2014-11-11 10:26 |只看该作者
  1. for i in `ls`; do [ ! -d ${i%_*} ] && mkdir ${i%_*}; mv $i ${i%_*}/.; done
复制代码

论坛徽章:
2
射手座
日期:2013-10-29 16:22:32丑牛
日期:2013-11-25 16:29:17
6 [报告]
发表于 2014-11-11 10:28 |只看该作者
回复 2# dn833


   我修改了下 能实现效果 能让它不产生这样的提示吗

#!/bin/bash
for dir in $(ls *.sql.gz|awk -F '_' '!a[$1]++'|awk -F_ '{print $1}')
do mkdir $dir && mv ${dir}* $dir
done


$ ./test.sh
mv: 无法将目录"hlcjhd" 移动至自身的子目录"hlcjhd/hlcjhd" 下
mv: 无法将目录"hlhd" 移动至自身的子目录"hlhd/hlhd" 下
mv: 无法将目录"niandu12" 移动至自身的子目录"niandu12/niandu12" 下

论坛徽章:
0
7 [报告]
发表于 2014-11-11 10:44 |只看该作者
本帖最后由 jadonmust 于 2014-11-11 10:45 编辑
kakaliu 发表于 2014-11-11 10:28
回复 2# dn833



上面的脚本语句改成以下命令(重定向到/dev/null就不会产生提示了)
do mkdir $dir  &> /dev/null && mv ${dir}* $dir

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
8 [报告]
发表于 2014-11-11 13:14 |只看该作者
一大早还没睡醒,忘记awk应该是print $1了

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
9 [报告]
发表于 2014-11-11 13:33 |只看该作者
回复 6# kakaliu


    我把脚本稍微改了改,你再试试看吧

论坛徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亚冠之首尔
日期:2015-06-23 15:37:0015-16赛季CBA联赛之天津
日期:2016-01-22 18:58:2915-16赛季CBA联赛之佛山
日期:2016-05-31 19:18:0815-16赛季CBA联赛之同曦
日期:2016-08-10 16:26:3315-16赛季CBA联赛之辽宁
日期:2018-01-10 11:47:40
10 [报告]
发表于 2014-11-11 13:55 |只看该作者
python来一发
  1. #!/usr/bin/python
  2. import  os
  3. import  sys
  4. import shutil
  5. dsdir=sys.argv[1]
  6. for  item in os.listdir(dsdir):
  7.      dir=item.split('_')
  8.      os.chdir(dsdir)
  9.      if os.path.exists(dir[0]):
  10.         pass
  11.      else:
  12.         os.mkdir(dir[0])
  13.      shutil.move(item,dir[0])
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP