免费注册 查看新帖 |

Chinaunix

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

如何复制一个文件的一段内容到另一个文件 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2012-01-31 17:20 |只看该作者
没什么结果,b文件没有任何变化,屏幕打印出b的内容

论坛徽章:
0
22 [报告]
发表于 2012-01-31 17:23 |只看该作者
是吗?
  1. [joe@joe-laptop ~]$ cat a.txt
  2. kashdf;las;
  3. asdjfa;slkd
  4. xxx
  5. 1111
  6. start
  7. abc
  8. 1
  9. 2
  10. des
  11. 4
  12. er
  13. end
  14. yyy
  15. 222
  16. yiouopupou
  17. joiu
  18. wq
  19. [joe@joe-laptop ~]$ cat b.txt
  20. xxx
  21. 111
  22. start
  23. ni
  24. 2
  25. 5
  26. end
  27. yyy
  28. 222
  29. [joe@joe-laptop ~]$ awk 'FNR==NR{if($0 ~ /^start$/)while($0 !~ /^end$/){a=a?a RS $0:$0;getline;}next}{FS="\n";RS="";sub("start\n.*end\n",a"\nend\n",$0)}1' a.txt b.txt
  30. xxx
  31. 111
  32. start
  33. abc
  34. 1
  35. 2
  36. des
  37. 4
  38. er
  39. end
  40. yyy
  41. 222
复制代码

论坛徽章:
0
23 [报告]
发表于 2012-01-31 17:26 |只看该作者
你写和我一模一样的两个文件试试,我这里反正不行

论坛徽章:
0
24 [报告]
发表于 2012-01-31 17:29 |只看该作者
因为你的两个文件在windows下面建立的,所以会没有效果

论坛徽章:
0
25 [报告]
发表于 2012-01-31 17:35 |只看该作者
嗯,为什么呢,我刚在linux机器下也建立了一下,确实打印到屏幕了,但是没保存到b.txt,怎么解决呢

论坛徽章:
0
26 [报告]
发表于 2012-01-31 17:42 |只看该作者
  1. awk 'FNR==NR{if($0 ~ /^start$/)while($0 !~ /^end$/){a=a?a RS $0:$0;getline;}next}{FS="\n";RS="";sub("start\n.*end\n",a"\nend\n",$0)}1' a.txt b.txt > c.txt;mv b.txt b.bak;mv c.txt b.txt
复制代码

论坛徽章:
0
27 [报告]
发表于 2012-01-31 18:07 |只看该作者
非常感谢!!!yangkyo821

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
28 [报告]
发表于 2012-01-31 23:24 |只看该作者
回复 6# 往事如风2012


    sed 用-i 选项

论坛徽章:
0
29 [报告]
发表于 2012-02-01 12:39 |只看该作者
如果我那个start变为[inf start] end变为[inf end]怎么解决呢?

回复 26# yangkyo821


   

论坛徽章:
0
30 [报告]
发表于 2012-02-01 13:09 |只看该作者
你好
如果a.txt 和b.txt文件的start和end之间有空格怎么解决呢?


回复 26# yangkyo821


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP