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

举例:

amosli@amosli-pc:~/learn/example$ dd if=/dev/zero of=test.zip bs=2M count=;
+ records in
+ records out
bytes (2.1 MB) copied, 0.0115033 s, MB/s
amosli@amosli-pc:~/learn/example$ ls
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大小的文件。

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

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

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

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

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

举例:

a.txt ,b.txt

amosli@amosli-pc:~/learn/example$ cat a.txt  b.txt
aple #a.txt
orange
gold
iron orange #b.txt
gold
cookies

给两者排序:

amosli@amosli-pc:~/learn/example$ sort a.txt -o a.txt ;
amosli@amosli-pc:~/learn/example$ sort b.txt -o b.txt ;
amosli@amosli-pc:~/learn/example$ cat a.txt b.txt ; aple #a.txt
gold
iron
orange cookies #b.txt
gold
orange

比较两者:

amosli@amosli-pc:~/learn/example$ comm a.txt  b.txt ;

aple
cookies
gold
iron
orange
amosli@amosli-pc:~/learn/example$

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

可选参数:

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

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

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

举例:

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

amosli@amosli-pc:~/learn/example$ comm a.txt b.txt  - - ; 

gold
orange

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

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

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

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

amosli@amosli-pc:~/learn/example$ comm a.txt b.txt - -
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. JQuery-Dialog(弹出窗口,遮蔽窗口)

    在Ajax中经常用到的弹出窗口和遮蔽窗口.自己写肯定是一个最佳方案,但时间和成本上,还是决定了寻找现成的吧.大概罗列一下.需要我满足我几个条件 一定要简洁方便 拥有遮蔽功能,Model Dialog ...

  2. Android -- 混淆

    混淆本质 把原来有具体含义的类名,变量名,方法名,修改成让人看不懂的名字,例如方法名getxx混淆为方法名a. Android Studio中的混淆 Android工程目录下有个文件,proguard ...

  3. Linux下C结构体初始化[总结]

    1.前言 今天在公司看一同事写的代码,代码中用到了struct,初始化一个struct用的是乱序格式,如下代码所示: typedef struct _data_t { int a; int b; }d ...

  4. 前端开发必备 40款优秀CSS代码编写工具推荐

    摘要:CSS工具可以简化工作流,可以提高CSS编写速度,是开发者和设计者所不可缺少的.本文列举了40种CSS工具,功能涉及CSS菜单.动画.3D图形.响应式页面.图层.按钮等界面元素的设计与制作,你定 ...

  5. how-to-get-a-job-in-deep-learning

    http://blog.deepgram.com/how-to-get-a-job-in-deep-learning/ How to Get a Job In Deep Learning 22 SEP ...

  6. 文档的js

    /* 主站,子频道,定向站点共用 */ (function() { scrollToAnchor(); toggleSearchForm(); scrollTop(); initScrollBar() ...

  7. 海马模拟器连不上ADB的解决方法

    http://yunpan.cn/c3xMeYhvVsEIq  访问密码 fa8d先暂时用这个工具吧,官方提供的,不过目前不是最终版,后面会加入到模拟器中 adb connect 127.0.0.1: ...

  8. FIS前端集成解决方案

    FIS前端集成解决方案-文档结构 什么是FIS 部署FIS FIS基本使用 模块定义 加载方式 调用Tangram 2.0 FIS开发实例 --附件下载-- 什么是FIS FIS提供了一套贯穿开发流程 ...

  9. SHELL异常处理

    写SHELL好久了,经常被异常困扰,可竟然坚持了若干年没用过,回想以前服务过的公司,阿弥陀佛,罪过罪过.废话少说,希望此篇文章可以协助大家和我彻底结束SHELL脚本就是LINUX命令集合的初级阶段. ...

  10. [转]mysql组合索引与字段顺序

    下列转自:http://www.tech-q.cn/archiver/tid-11673.html 很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是 ...