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

举例:

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

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

2097152 bytes (2.1 MB) copied, 0.0115033 s, 182 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
ironorange #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
orangecookies #b.txt
gold
orange

比较两者:

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

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

可选参数:

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

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

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

举例:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. Linux Shell 脚本攻略学习--四

    linux中(chattr)创建不可修改文件的方法 在常见的linux扩展文件系统中(如ext2.ext3.ext4等),可以将文件设置为不可修改(immutable).某些文件属性可帮助我们将文件设 ...

  4. Linux Shell脚本攻略学习总结:三

    根据扩展名切分文件名 首先,我们先来看两个例子: file_jpg="sample.jgp" name=${file_jpg%.*} echo File name is : $na ...

  5. Linux Shell脚本攻略学习总结:二

    比较与测试 程序中的流程控制是由比较和测试语句来处理的. 我们可以用if,if else 以及逻辑运算符来执行测试,而用一些比较运算符来比较数据项.另外,有一个test 命令也可以用来进行测试.让我们 ...

  6. linux shell脚本攻略 第三章 以文件之名 find,chmod,touch,head,tail,tree,wc

    目录 1.生成任意大小的文件 2.文本文件的交集与差集 3.查找并删除重复文件 4.文件和目录权限 5.创建不可修改的文件 6.修改文件访问时间 7.查找符号链接与指向目标 8.查找文件差异并进行修补 ...

  7. LINUX SHELL脚本攻略笔记[速查]

    LINUX SHELL脚本攻略笔记[速查] Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgr ...

  8. Linux Shell脚本攻略 读书笔记

    内容目录: 嗨,Echo一下 给终端来点颜色 shell的控制结构 算术比较 目录操作 网站下载 tar 归档工具 rsync 备份系统快照 ftp自动传输 磁盘管理 故障排查 使用syslog记录日 ...

  9. 《Linux Shell脚本攻略》读书笔记第三章 以文件之名

    1.生成任意大小文件 dd [root@stone ~]# dd if=/dev/zero of=f1_dd bs=1M count=1 1+0 records in 1+0 records out ...

最新文章

  1. python使用matplotlib可视化跨年数值指标中位数变化率、使用pct_change函数计算变化率、年环比变化率(pct_change function)
  2. 腾讯大数据回答2019:鹅厂开源先锋,日均计算量超30万亿,全力打破数据墙
  3. 【PWA学习与实践】(3) 让你的WebApp离线可用
  4. BZOJ1003: [ZJOI2006]物流运输
  5. Oracle-使用切片删除的方式清理非分区表中的超巨数据
  6. JasperReport:声明周期
  7. Exchange server 2010系列教程之三 发送邮件测试
  8. spring MVC要注意的地方 2
  9. 【BZOJ】2553: [BeiJing2011]禁忌 AC自动机+期望+矩阵快速幂
  10. Github 下载项目的某一分支版本
  11. Java中BigDecimal类型的加减乘除及大小比对
  12. 左移和右移的运算规则_一文读懂JavaScript位的与、或、异或、取反及左移右移操作...
  13. 如何获取html输入框的值,jQuery如何获取各种input输入框的值
  14. [专题练习] Part1 搜索
  15. 国内O2O运营模式逐渐改变我们生活方式
  16. .NET面试宝典130道经典面试真题及答案
  17. 手机号正则(2020年4月15日)
  18. druid emitter 监控模块
  19. 即兴演讲的秘诀结构(一)
  20. 20.P153课后习题6-13 背包问题。设有一个背包可以放入物品的重量为s,现有n件物品,重量分别为w[0],w[1],...w[n-1]。问题是能否从这n件物品中选择若干件放入此背包中使得放入的重

热门文章

  1. .net core 2.0 HTTPS request fails using HttpClient 安全错误
  2. 顺风详解Nginx系列—Ngx中的变量
  3. 英特尔发现Spectre和Meltdown 补丁对性能影响程度为0-21%
  4. Linux下备份系统
  5. Jenkins与Docker的持续集成实践
  6. 海外web平台访问速度慢的原因之一
  7. C++走向远洋——61(项目一、排序函数模板)
  8. 阻止应用继承的NTFS权限
  9. quick-cocos2d-x教程12:实现文本和password输入界面
  10. 移动端touchstart、touchmove事件的基本使用