一、生成任意大小的文件(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. Centos7下yum安装配置nginx与php

    实现LNMP环境搭建. 开始安装Nginx和PHP-FPM之前,首先卸载系统中以前安装的Apache和PHP保证安装不会冲突.用root登录输入下面的命令: yum remve httpd* php* ...

  2. Android推送分析

     cpu多核利用能够实现Android推送的吞吐量. 讲明白这点,我们需要了解Android推送的基本原理了.如果实现C(客户端)与server(客户端)实时通讯了.这里有两种思路了: 1.一种是定时 ...

  3. [BUG] Dashboard报错:if usages['subnets']['available'] <= 0: KeyError: 'available'

    Openstack版本号:Liberty 系统平台:CentOS 7.2 64bit ######################################################### ...

  4. PHP 使用PHPExcel删除Excel单元格指定列

    需求是这样的: 有一个系统仅公司内部和外部经销商使用,在一个导出功能中公司内部员工跟外部经销商导出的列是不一样的(某些数据是不能提供给经销商的) 因为导出的数据都是一样的(某些列外数据外部没有)因此并 ...

  5. form表单的reset

    $(':input','#myform') .not(':button, :submit, :reset, :hidden') .val('') .removeAttr('checked') .rem ...

  6. javax.validation.UnexpectedTypeException: No validator could be found for constraint 'org.hibernate.validator.constraints.Length' validating type

    使用hibernate validator出现上面的错误, 需要注意: @NotNull 和 @NotEmpty  和@NotBlank 区别 @NotEmpty 用在集合类上面@NotBlank 用 ...

  7. Persistent Netcat Backdoor

    In this example, instead of looking up information on the remote system, we will be installing a net ...

  8. 老周发布 UWP 应用的隐私策略(通用)

    UWP 应用隐私策略 前注  本声明通用于老周所发布的所有 UWP 应用,下文简称“应用”.开发者全称:周家安,下文简称“老周”. 1.免责声明 您在使用应用过程中,请遵守<中华人民共和国宪法& ...

  9. python 不需要函数重载

    函数重载主要是为了解决两个问题. 可变参数类型. 可变参数个数. 另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其 ...

  10. 在CentOS7(虚拟机)下通过源码安装Postgresql10以及基本配置

    操作系统:CentOS7 安装文件:postgresql-10.0.tar.gz 系统环境:gcc.Python 1:源码安装 [postgres@localhost ~]# tar zxvf pos ...