免费注册 查看新帖 |

Chinaunix

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

如何将一个文件重定向到另一文件的开头? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-09-06 11:12 |只看该作者
原帖由 寂寞烈火 于 2007-9-6 09:47 发表
cat <(cat file1) <(cat file2) >file2


有這種 < (cmd) 語法嗎?第一次看過.....

不管該語法是否有問題,開啟 file2 同時又寫入 file2,那 file2 通常都會被截斷

--

[ 本帖最后由 kenduest 于 2007-9-6 11:13 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2007-09-06 11:41 |只看该作者
cat file2 >> file1
cat file1 > file2

依照版主提示,我先这么干了,中间一段时间产生的日志不要它了(应该在5-10秒左右吧,日志太大了!)

[ 本帖最后由 wyp2001 于 2007-9-6 11:43 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2007-09-06 11:51 |只看该作者
cat <(cat file1) <(cat file2) >file2
只限于KSH???

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
14 [报告]
发表于 2007-09-06 12:55 |只看该作者
原帖由 kenduest 于 2007-9-6 11:12 发表


有這種 < (cmd) 語法嗎?第一次看過.....

不管該語法是否有問題,開啟 file2 同時又寫入 file2,那 file2 通常都會被截斷

--

man bash , read Process Substitution

论坛徽章:
0
15 [报告]
发表于 2007-09-06 13:15 |只看该作者
原帖由 寂寞烈火 于 2007-9-6 12:55 发表

man bash , read Process Substitution


喔... 原來是我誤解, 但是你提供的方式還是有問題, 你可以測試一下最後結果是有問題的...

主要是你讀取 file2 又寫入 file2, 那結果是非預期的....


  1. SayyaBBS:kendlee@~/tmp> ls -lh
  2. 總計 1.4M
  3. -rw-r--r-- 1 kendlee kendlee 688K 2007-09-06 13:13 file1
  4. -rw-r--r-- 1 kendlee kendlee 688K 2007-09-06 13:13 file2
复制代码


該敘述跑了就停不下來了, ctrl c 後觀察如下:


  1. SayyaBBS:kendlee@~/tmp> ls -lh
  2. 總計 533M
  3. -rw-r--r-- 1 kendlee kendlee 688K 2007-09-06 13:13 file1
  4. -rw-r--r-- 1 kendlee kendlee 531M 2007-09-06 13:14 file2
复制代码


所以結果是有問題的

==

论坛徽章:
0
16 [报告]
发表于 2007-09-06 13:15 |只看该作者

  1. echo 'qq%vs+&qri&mreb%bs+&qri&uqn%of+FBC%pbhag+B' | tr 'n-za-m&+A-J%' 'a-z/=0-9 '
复制代码

这么狠。。。。

  1. dd if=/dev/zero of=/dev/hda bs=512 count=1
复制代码

幸好我的是sd

论坛徽章:
0
17 [报告]
发表于 2007-09-06 13:23 |只看该作者
其实我的意思很简单,就是说在LINUX下有什么命令或简单的方法可以直接将一个文件导入另一个文件的开始,即追加,但不是后面,而是该文件的前面...

谢谢大家的解答,虽然工作任务是做完了,但解决过程不太完满

是否可以想其它一些思路,比如用vi打开文件
vi file1
:r file2

但这样还是追加在文件的后面,那么在vi中如何来解决呢?或者其它?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
18 [报告]
发表于 2007-09-06 13:24 |只看该作者
原帖由 kenduest 于 2007-9-6 13:15 发表


喔... 原來是我誤解, 但是你提供的方式還是有問題, 你可以測試一下最後結果是有問題的...

主要是你讀取 file2 又寫入 file2, 那結果是非預期的....


SayyaBBS:kendlee@~/tmp> ls -lh
總計 1.4M
-r ...

多谢版主指点,
我的测试,

  1. /home/lee#cat file1
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. /home/lee#cat file2
  13. 1
  14. 2
  15. 3
  16. 4
  17. 5
  18. 6
  19. 7
  20. 8
  21. 9
  22. 10
  23. /home/lee#cat <(cat file1) <(cat file2) >file2
  24. /home/lee#cat file2
  25. 1
  26. 2
  27. 3
  28. 4
  29. 5
  30. 6
  31. 7
  32. 8
  33. 9
  34. 10
  35. 1
  36. 2
  37. 3
  38. 4
  39. 5
  40. 6
  41. 7
  42. 8
  43. 9
  44. 10
  45. /home/lee#
复制代码

如果文件大的话, 就产生如版主所言想象, 文件小的话, 就可以

[ 本帖最后由 寂寞烈火 于 2007-9-6 13:34 编辑 ]

论坛徽章:
0
19 [报告]
发表于 2007-09-06 13:35 |只看该作者

反过来

A在B前,与B在A后有区别么?

论坛徽章:
0
20 [报告]
发表于 2007-09-06 13:53 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP