dd的作用是转换和拷贝文件,我们可以利用它来分割文件,相关的选项如下:

if=filename:输入的文件名

of=finename:输出的文件名

bs=bytes:一次读写的字节数,默认是512bytes

skip=blocks:拷贝前,跳过的输入文件的前blocks块,块的大小有bs决定

count=blocks:只拷贝输入文件的前blocks块 

例如,现在有一个文件file,大小为116616字节:

  1. [root]# du -b file  

  2. 116616  file  

将其分割为两文件file1和file2,那我们就设置每块为1024字节,将file的前60块放入file1,余下的放入file2:

  1. [root]# dd if=file bs=1024 count=60 skip=0  of=file1  

  2. [root]# dd if=file bs=1024 count=60 skip=60 of=file2  

然后用cat将两个文件合并为file.bak,要注意文件的顺序:

  1. [root]# cat file1 file2 > file.bak  

可以用md5sum验证一下file和file.bak:

  1. [root]# md5sum file  

  2. 3ff53f7c30421ace632eefff36148a70  file  

  3. [root]# md5sum file.bak  

  4. 3ff53f7c30421ace632eefff36148a70  file.bak  

可以证明两个文件时完全相同的。


grep手册中的解释:

Context Line Control

-A NUM, --after-context=NUM
   Print NUM  lines  of  trailing  context  after  matching  lines.
   Places   a  line  containing  a  group  separator  (--)  between
   contiguous groups of matches.  With the  -o  or  --only-matching
   option, this has no effect and a warning is given.

-B NUM, --before-context=NUM
   Print  NUM  lines  of  leading  context  before  matching lines.
   Places  a  line  containing  a  group  separator  (--)   between
   contiguous  groups  of  matches.  With the -o or --only-matching
   option, this has no effect and a warning is given.

-C NUM, -NUM, --context=NUM
   Print NUM lines of output context.  Places a line  containing  a
   group separator (--) between contiguous groups of matches.  With
   the -o or --only-matching option,  this  has  no  effect  and  a
   warning is given.

简单翻译就是,-A -B -C 后面都跟阿拉伯数字,-A是显示匹配后和它后面的n行。-B是显示匹配行和它前面的n行。-C是匹配行和它前后各n行。总体来说,-C覆盖面最大。用它保险些。哈哈。这3个开关都是关于匹配行的上下文的(context)。

于是,

  grep -A 4 wikipedia 密码文件.txt

grep -A 100000 "/pic/" t_pic_queue