Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57415
  • 博文数量: 25
  • 博客积分: 2051
  • 博客等级: 大尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-24 19:56
文章分类
文章存档

2011年(1)

2009年(8)

2008年(16)

我的朋友
最近访客

分类:

2009-05-27 11:16:14

一般用head -n -1 urfile
比sed "$d" file要快
这个好像是非常快的解决方法
:|dd of=urfile seek=1 bs=$(($(find urfile -printf "%s")-$(tail -1 urfile|wc -c)))
or
:|dd of=urfile seek=1 bs=$(($(stat -c%s urfile)-$(tail -1 urfile|wc -c)))

这条命令:的输出就是输入文件。
:     No effect; the command does nothing. A zero exit  code
           is returned.意思就是啥也没干
后面的才是重点,用来truncate文件
  of=file
           Specifies the output  path.  Standard  output  is  the
           default.  If  the  seek=expr  conversion  is  not also
           specified, the output file will  be  truncated  before
           the  copy begins, unless conv=notrunc is specified. If
           seek=expr is specified, but conv=notrunc is  not,  the
           effect  of  the copy will be to preserve the blocks in
           the output file over which dd seeks, but no other por-
           tion  of  the  output  file will be preserved. (If the
           size of the seek plus the size of the  input  file  is
           less  than  the  previous size of the output file, the
           output file is shortened by the copy.)

就是指直接在原文件上做改动
当没有指定conv=notrunc时候,会保留 seek*bloks的大小,这样文件就没有复制操作,直接在源文件上进行改变,这也是它快的原因。真是个NB人想出来的
阅读(1671) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~