一、生成任意大小的文件(dd命令):

举例:

  1. amosli@amosli-pc:~/learn/example$ dd if=/dev/zero of=test.zip bs=2M count=;
  2. + records in
  3. + records out
  4. bytes (2.1 MB) copied, 0.0115033 s, MB/s
  5. amosli@amosli-pc:~/learn/example$ ls
  6. test.zip

dd命令介绍:创建特定大小的文件最简单的方法就是使用dd命令,dd命令会克隆给定的输入内容然后将一模一样的一份副本写入到输出。stdin,设备文件,普通文件都可以作为输入,stdout,设备文件,普通文件等都可以作为输出。

对于上面的例子:上面的例子创建了一个test.zip文件,大小为2M,其中if参数并不是判断语句如果的意思,它是input file的缩写,of 是output file 的缩写,bs 代表的是以字节为单位的块大小,block size,count 表示需要被复制的块数。

我们瘵bs指定为2M,count 指定为1得到了一个大小为2M的文件,如果count 为n,那么将得到n*2大小的文件。

  1. 单元大小             代  码
  2. 字节(1B)     c
  3. 字(2B) w
  4. 块(512B) b
  5. 千字节(1024B) k
  6. 兆字节(1024KB) M
  7. 吉字节(1024M G

下面是代表内存的操作速度:

  1. bytes (2.1 MB) copied, 0.0115033 s, MB/s

二、文本文件的交集与差集(comm命令)

交集(intersection)和差集(set difference)是数学上的基本概念。下面用comm命令来对文本文件进行比较。

举例:

a.txt ,b.txt

  1. amosli@amosli-pc:~/learn/example$ cat a.txt b.txt
  2. aple #a.txt
  3. orange
  4. gold
  5. iron
  6.  
  7. orange #b.txt
  8. gold
  9. cookies

给两者排序:

  1. amosli@amosli-pc:~/learn/example$ sort a.txt -o a.txt ;
  2. amosli@amosli-pc:~/learn/example$ sort b.txt -o b.txt ;
  3. amosli@amosli-pc:~/learn/example$ cat a.txt b.txt ;
  4.  
  5. aple #a.txt
  6. gold
  7. iron
  8. orange
  9.  
  10. cookies #b.txt
  11. gold
  12. orange

比较两者:

  1. amosli@amosli-pc:~/learn/example$ comm a.txt b.txt ;
  2.  
  3. aple
  4. cookies
  5. gold
  6. iron
  7. orange
  8. amosli@amosli-pc:~/learn/example$

说明:第一列表示只在a.txt 中出现过的数据,第二列表示只在b.txt中出现过的数据,第三列表示两者的交集。

可选参数:

-1 表示从输出中删除第一列

-2表示从输出中删除第二列

-3表示从输出中删除第三列

举例:

取两者交集(删除第一、二列):

  1. amosli@amosli-pc:~/learn/example$ comm a.txt b.txt - - ;
  2.  
  3. gold
  4. orange

取两者不同的值合并到一块:

  1. amosli@amosli-pc:~/learn/example$ comm a.txt b.txt - | sed 's/^\t//';
  2. aple
  3. cookies
  4. iron

上面用到了sed命令,sed中的s表示替换(substitute),/^\t/表示行首的\t(制表符),//表示空,用空来替换即表示删除行首的\t,然后合并输出。

那么两者的差集是什么样的?

  1. amosli@amosli-pc:~/learn/example$ comm a.txt b.txt - -
  2. cookies

a.txt 内容减去b.txt内容即为上述内容。

接下来将会介绍文件权限方面的内容,敬请期待。

linux shell 脚本攻略学习10--生成任意大小的文件和文本文件的交集与差集详解的更多相关文章

  1. linux shell 脚本攻略学习20--awk命令入门详解

    awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...

  2. Linux Shell脚本攻略学习总结:一

    终端打印 终端打印的常用命令有两个:echo和print 首先,我先介绍echo 1.echo echo这个命令接受三种形式的参数,实例如下: echo "Hello World" ...

  3. linux shell 脚本攻略学习14--head命令详解,tail命令详解

    当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除 ...

  4. linux shell 脚本攻略学习13--file命令详解,diff命令详解

    一.file命令详解 find命令可以通过查看文件内容来找出特定类型的文件,在UNIX/ Linux系统中,文件类型并不是由文件扩展名来决定的(windows中却正是这么做的),file命令的目的是从 ...

  5. linux shell 脚本攻略学习8---md5校验,sort排序,uniq命令详解

    一.校验与核实 目前最为出名的校验技术是md5sum和sha1sum,它们对文件内容使用相应的算法来生成校验和. 举例: amosli@amosli-pc:~/learn$ md5sum text.t ...

  6. linux shell 脚本攻略学习 -- head命令详解, tail命令详解

    当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除 ...

  7. linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解

    文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...

  8. linux shell 脚本攻略学习16--wc命令详解,tree命令详解

    在文本处理的工作中,统计文件的行数,单词数和字符数非常有用.而对于开发人员本身来说,统计LOC(line of code ,代码行数)是一件重要的工作.linux中有什么命令可以帮助我们做统计呢?没错 ...

  9. linux shell 脚本攻略学习11--mkdir和touch命令详解

    一.创建目录(mkdir命令详解) amosli@amosli-pc:~/learn$ mkdir dir amosli@amosli-pc:~/learn/dir$ mkdir folder amo ...

随机推荐

  1. VS2010如何生成ActiveX控件测试容器

    VS2010中默认没有ActiveX控件测试容器TSTCON.exe,而是微软把这个文件放到了例子程序中,需要用户自己编译: 具体方法为: 在VS2010的安装目录中找到以下目录Samples\205 ...

  2. 基于CRF的中文分词

    http://biancheng.dnbcw.info/java/341268.html CRF简介 Conditional Random Field:条件随机场,一种机器学习技术(模型) CRF由J ...

  3. TCP Socket Programming in Node.js

    TCP Socket Programming in Node.js Posted on October 26th, 2011 under Node.jsTags: Client, node.js, S ...

  4. ARM 汇编的mov操作立即数的疑问

    1. 因为对arm汇编有些指令还不能理解,特别是一些相似功能指令间的区别.偶然在网上搜到"faq ARM assembly",其中描述的几个问题还是值得好好研究一下. 2. 慢慢的 ...

  5. Vs2013 坑爹的Target framework问题

    之前的一个项目是使用Vs2008来开发的,因为这段时间家里有事情所以只能跟经理协商在家里来做此项目,因为家里的VS是2013的所以在迁移时没有什么问题 但今天我更改一个类库的文件后重新生成解决方案结果 ...

  6. awk学习 (good)

    原文:http://blog.chinaunix.net/uid-23302288-id-3785105.html awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓 ...

  7. java 中xml转换为json对象

    1.前提须要jar包: json-lib-2.4-jdk15.jar 和 xom-1.2.5.jar ,maven 仓库: net.sf.json-lib json-lib 2.4 jdk15 xom ...

  8. TFS 之 彻底删除团队项目

    方式一 通过选择“齿轮图标”打开团队项目集合的管理上下文. 打开要删除的团队项目的 上下文菜单. 如果未看到上下文图标 (),则你不是在访问 Visual Studio Online,或不是项目集合管 ...

  9. ANT简明教程[转载]

    一.ant关键元素 1. project元素 project 元素是 Ant 构件文件的根元素, Ant 构件文件至少应该包含一个 project 元素,否则会发生错误.在每个 project 元素下 ...

  10. SqlServer判断表、列不存在则创建

    一.表不存在则创建: if not exists (select * from sysobjects where id = object_id('mytab') and OBJECTPROPERTY( ...