linux shell 脚本攻略学习10--生成任意大小的文件和文本文件的交集与差集详解
一、生成任意大小的文件(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--生成任意大小的文件和文本文件的交集与差集详解的更多相关文章
- linux shell 脚本攻略学习20--awk命令入门详解
awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...
- Linux Shell脚本攻略学习总结:一
终端打印 终端打印的常用命令有两个:echo和print 首先,我先介绍echo 1.echo echo这个命令接受三种形式的参数,实例如下: echo "Hello World" ...
- linux shell 脚本攻略学习14--head命令详解,tail命令详解
当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除 ...
- linux shell 脚本攻略学习13--file命令详解,diff命令详解
一.file命令详解 find命令可以通过查看文件内容来找出特定类型的文件,在UNIX/ Linux系统中,文件类型并不是由文件扩展名来决定的(windows中却正是这么做的),file命令的目的是从 ...
- linux shell 脚本攻略学习8---md5校验,sort排序,uniq命令详解
一.校验与核实 目前最为出名的校验技术是md5sum和sha1sum,它们对文件内容使用相应的算法来生成校验和. 举例: amosli@amosli-pc:~/learn$ md5sum text.t ...
- linux shell 脚本攻略学习 -- head命令详解, tail命令详解
当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除 ...
- linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解
文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...
- linux shell 脚本攻略学习16--wc命令详解,tree命令详解
在文本处理的工作中,统计文件的行数,单词数和字符数非常有用.而对于开发人员本身来说,统计LOC(line of code ,代码行数)是一件重要的工作.linux中有什么命令可以帮助我们做统计呢?没错 ...
- linux shell 脚本攻略学习11--mkdir和touch命令详解
一.创建目录(mkdir命令详解) amosli@amosli-pc:~/learn$ mkdir dir amosli@amosli-pc:~/learn/dir$ mkdir folder amo ...
随机推荐
- VS2010如何生成ActiveX控件测试容器
VS2010中默认没有ActiveX控件测试容器TSTCON.exe,而是微软把这个文件放到了例子程序中,需要用户自己编译: 具体方法为: 在VS2010的安装目录中找到以下目录Samples\205 ...
- 基于CRF的中文分词
http://biancheng.dnbcw.info/java/341268.html CRF简介 Conditional Random Field:条件随机场,一种机器学习技术(模型) CRF由J ...
- TCP Socket Programming in Node.js
TCP Socket Programming in Node.js Posted on October 26th, 2011 under Node.jsTags: Client, node.js, S ...
- ARM 汇编的mov操作立即数的疑问
1. 因为对arm汇编有些指令还不能理解,特别是一些相似功能指令间的区别.偶然在网上搜到"faq ARM assembly",其中描述的几个问题还是值得好好研究一下. 2. 慢慢的 ...
- Vs2013 坑爹的Target framework问题
之前的一个项目是使用Vs2008来开发的,因为这段时间家里有事情所以只能跟经理协商在家里来做此项目,因为家里的VS是2013的所以在迁移时没有什么问题 但今天我更改一个类库的文件后重新生成解决方案结果 ...
- awk学习 (good)
原文:http://blog.chinaunix.net/uid-23302288-id-3785105.html awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓 ...
- 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 ...
- TFS 之 彻底删除团队项目
方式一 通过选择“齿轮图标”打开团队项目集合的管理上下文. 打开要删除的团队项目的 上下文菜单. 如果未看到上下文图标 (),则你不是在访问 Visual Studio Online,或不是项目集合管 ...
- ANT简明教程[转载]
一.ant关键元素 1. project元素 project 元素是 Ant 构件文件的根元素, Ant 构件文件至少应该包含一个 project 元素,否则会发生错误.在每个 project 元素下 ...
- SqlServer判断表、列不存在则创建
一.表不存在则创建: if not exists (select * from sysobjects where id = object_id('mytab') and OBJECTPROPERTY( ...