linux shell 脚本攻略学习10--生成任意大小的文件和文本文件的交集与差集详解
2023-09-14 08:58:56 时间
一、生成任意大小的文件(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 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 -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文件锁
- linux防火墙的配置和管理(一)
- 安全Linux文件权限:预防安全风险(linux文件权限不够)
- Linux快速建站指南(linux怎么建站)
- Linux文件特殊权限:掌控文件访问能力(linux文件特殊权限)
- 安卓平板玩转Linux系统(安卓平板装linux)
- Linux 文件命名之道:让管理变得更轻松(linux文件命名)
- 精通Linux设备驱动程序——第三版(linux设备驱动第三版)
- 程序学习Linux驱动程序:从入门到精通(怎样学习linux驱动)
- 启动Linux上的Oracle 数据库(linux启动oracle数据库)
- 管理Linux文件权限管理:保障用户安全运行(linux文件权限用户)
- 权限 Linux下修改文件组用户权限实现高效管理(linux修改文件组用户)
- 如何轻松学习Linux(怎么自学linux)
- 开启Linux系统安全优化之旅(linux系统安全优化)
- Linux中的空格解决方案(linux字符串空格)
- Linux 文件权限详解——数字权限模式(linux数字权限)
- 如何在Linux中查看文件大小(linux查看文件的大小)
- 在Linux系统中如何运行EXE文件?(linux系统运行exe)
- 文件Linux下快速全局查找文件(linux全局查找)
- 文件在Linux中查看txt文件的简单方法(linux查看txt)
- Linux定期清理:删除无用文件(linux定期删除文件)
- Linux打开二进制文件的技巧(linux打开二进制文件)
- Linux系统下的串口驱动实践研究(linux系统串口驱动)
- 快速实现文件备份——Linux中如何复制目录及文件(linux复制目录及文件)
- Linux下妙用复制命令,快速而高效(linux下的复制命令)
- 探索PTS Linux:开启崭新的开源物联网之旅(pts linux)