免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Windows19
打印 上一主题 下一主题

[文本处理] OK了 谢谢 [复制链接]

论坛徽章:
4
程序设计版块每日发帖之星
日期:2015-10-14 06:20:00每日论坛发贴之星
日期:2015-10-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-02 06:20:00程序设计版块每日发帖之星
日期:2016-05-08 06:20:00
21 [报告]
发表于 2016-04-25 23:18 |只看该作者
能否将B文本的文件名全部加上来,上传附件即可,看你的文件名这么乱,实在不知道还有啥鬼字符,再说系统不同,写出来的脚本可能也有问题

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-09-07 06:20:00程序设计版块每日发帖之星
日期:2015-09-07 06:20:00
22 [报告]
发表于 2016-04-26 08:49 |只看该作者
回复 1# Windows19
提供一种方法,希望有帮助
  1. [root@study study]# ls
  2. file  file1  script.sh  temp
  3. [root@study study]# cat file file1
  4. afe()';.,]][0
  5. 123()';.,]][0
  6. [root@study study]#
  7. [root@study study]#
  8. [root@study study]# cd temp/
  9. [root@study temp]# ls
  10. 123()';.,]][0  afe()';.,]][0
  11. [root@study temp]# cd ..
  12. [root@study study]# sh script.sh
  13. [root@study study]# cat file file1
  14. afe()';.,]][0
  15. 123()';.,]][0
  16. www
  17. ww

  18. a
  19. aaa
  20. aa

  21. [root@study study]# cat script.sh
  22. #!/bin/sh
  23. alias ll='ls -l'
  24. LANG=C
  25. export LANG
  26. Line=`ll /tmp/study/temp | grep -v total | wc -l`
  27. export Line
  28. declare -x num
  29. num=1
  30. while :
  31. do
  32.   var=`ll /tmp/study/temp | grep -v total | head -n $num |tail -n 1| awk '{print $9}'`
  33.   export var
  34.   for i in `cat /tmp/study/file`
  35.   do
  36.     if [ "$i" = "$var" ];then
  37.       cd /tmp/study/temp
  38.       cat ${var} >> /tmp/study/file1
  39.       echo >> /tmp/study/file1
  40.       break 1
  41.     else
  42.       continue
  43.     fi
  44.   done
  45.   num=$(($num+1))
  46.   if [ $num -gt $Line ];then
  47.     break
  48.   fi
  49. done
复制代码
其中,这个底下部分,貌似只能用这种方式。我本想用cat /tmp/study/temp/${var},但是会提示无此文件。
cd /tmp/study/temp
cat ${var} >> /tmp/study/file1

   

评分

参与人数 1信誉积分 +10 收起 理由
Windows19 + 10

查看全部评分

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-09-07 06:20:00程序设计版块每日发帖之星
日期:2015-09-07 06:20:00
23 [报告]
发表于 2016-04-26 09:05 |只看该作者
回复 15# elu_ligao
学习了


   

论坛徽章:
4
程序设计版块每日发帖之星
日期:2015-10-14 06:20:00每日论坛发贴之星
日期:2015-10-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-02 06:20:00程序设计版块每日发帖之星
日期:2016-05-08 06:20:00
24 [报告]
发表于 2016-04-26 10:44 |只看该作者
要我说,也就那点文件,你把B文件的内容全贴上来,重点在B上

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
25 [报告]
发表于 2016-04-26 11:31 来自手机 |只看该作者
本帖最后由 Windows19 于 2016-04-26 11:32 编辑

@mswsg   文件名不是固定,以后还要处理别的文件
您说的是单一重点对文件名写码处理不是解决之道,因为后续还会碰到这样的工作
解决之道是能够对所有文件名特殊符号能识别

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
26 [报告]
发表于 2016-04-26 12:14 |只看该作者
本帖最后由 Windows19 于 2016-04-26 12:15 编辑

回复 22# zy86416779


    就是好奇怪,看15楼用cat能够打开有复杂文件名,而自己测试过多次cat打不开,并且按着15楼写的做了,出来结果我这边都是文件名称,并不是合并里面内容,而他那边上来的却是能够合并内容,也照着他做,出来结果却不同,我也是醉了!
请问你们测试15楼也是这样结果么?真郁闷啊

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-09-07 06:20:00程序设计版块每日发帖之星
日期:2015-09-07 06:20:00
27 [报告]
发表于 2016-04-26 12:22 |只看该作者
回复 26# Windows19
你试着把cat "$file"改成cat ${file}看看。我没有测试他的代码,但是我的虚拟机也遇到了这个问题。cat "$file"出错。


   

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
28 [报告]
发表于 2016-04-26 12:41 |只看该作者
回复 26# Windows19


    想看下你的执行过程和结果, 截图或者复制黏贴都行

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
29 [报告]
发表于 2016-04-26 13:20 |只看该作者
回复 28# elu_ligao

应该这样执行步没错吧
  1. @ROOT
  2. $ cat 1.txt 2.txt
  3. A
  4. AAA
  5. AA
  6. WWW
  7. WW

  8. @ROOT
  9. $ while read file; do     [[ -e "$file" ]] && cat "$file" >> A && echo "" >> A || echo "$file" >> A.none; done < B

  10. @ROOT
  11. $ ls
  12. 1.txt  2.txt  A.none  B

  13. @ROOT
  14. $ cat A.none
  15. 2
  16. 1

  17. @ROOT
  18. $
复制代码

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
30 [报告]
发表于 2016-04-26 13:31 |只看该作者
回复 29# Windows19


    你的 B 中的内容看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP