grep 指令
语法:grep [选项] [目标字符串] [文件];
功能:在文件中搜索字符串,将找到的行打印出来;
常用选项
和find指令一样,grep也是Linux中一条非常强大且被频繁使用的指令,同样,其选项也非常多,这里我们还是只列举其中最基础、最常用的几个,更多的选项可以阅读下面这位大佬的博客: linux grep命令详解 - ggjucheng - 博客园 (cnblogs.com) 。
- -i:忽略大小写的不同,即将大小写视为相同;
- -n:顺便输出行号;
- -v :反向选择,即显示出没有 ‘搜寻字符串’ 内容的那一行;
拓展
为了方便下面的演示,除了之前我们使用 “cnt=0; while [ c n t − l e 10000 ] ; d o e c h o " h e l l o w o r l d [ cnt -le 10000 ] ; do echo "hello world [ cnt−le10000];doecho"helloworld[cnt]”; let cnt++; done > test.txt" 生成的test.txt文件之外,我们需要再新建一个 file.txt 以及 num.txt 文件:
指令演示
1、在文件中搜索字符串:
2、忽略大小写:
3、反向过滤:
与 grep 相关的其他指令
grep 可以和其他指令配合并结合管道,来实现某些匹配工作;
1、wc – 统计行数:
grep + wc + 管道 -> 统计符合筛选条件的行数:
2、sort – 对文本内容进行排序:
3、uniq – 去除文本中相邻的重复内容:
sort + uniq + 管道 -> 去除文本中的全部重复数据并排序:
注:grep、sort、uniq 类似指令是将文本中的内容按照一定的条件进行筛选后显示到终端,并不会改变文本中的内容。
zip 指令
语法:: zip [压缩文件.zip] [目录或文件];
功能:将目录或文件压缩成zip格式;
常用选项
- -r:递归处理,将指定目录下的所有文件和子目录一并处理;
拓展知识
1、我们为什么要对文件进行打包与压缩?
在我们平时使用Windows的过程中,可能也会遇到需要将文件进行打包的情况;比如我们的C语言期末大作业,老师一般都会要求我们将所有的 .c 文件,.h 文件,实验报告的.wordx 文件以及各种实验数据.txt 文件全部都放到一个文件夹中,然后将该文件夹压缩,最后只提交压缩文件即可;又比如我们的综测,我们需要将综测表、各种综测证明材料都放到一起然后压缩提交;
上述例子中,我们将各种分散的文件集中到一个文件夹下的操作叫打包,而将该文件夹压缩的操作叫压缩;打包和压缩是两个不同的概念,但是目前我们不对其做详细区分;
结合上面的两个例子,我们为什么要对文件进行打包与压缩呢?原因有两个:
1、便于传输:互联网中有许多大大小小的文件,将所有文件打包压缩到一个文件中进行传输可以有效避免小文件丢失,从而实现高效传输;
2、便于保存:将所有文件集中到一起便于我们对其进行管理与保存。
2、zip 默认对一个目录进行打包压缩的时候,只会对目录文件进行打包压缩,而不会对目录中的子文件进行打包压缩;所以我们使用 zip 打包压缩目录时需要使用 -r 选项。
指令演示
1、打包压缩目录文件:
2、打包压缩普通文件:
unzip 指令
语法:unzip [压缩文件/目录] [选项];
功能:解包并解压目录/文件;
常用选项
- -d:将文件解压到指定目录下;
拓展知识
1、zip 将文件进行打包并压缩,unzip 对文件进行解包并解压;
2、unzip 默认将文件解压到当前路径,如果想要解压到指定路径需要加 -d 选项。
指令演示
1、解压到当前路径:
2、解压到其他路径:
tar 指令
语法:tar [选项] [文件/目录];
功能:将目录或文件压缩成tgz格式;
常用选项
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令;
-t :查看 tarfile 里面的文件;
-z :是否同时具有 gzip 的属性?即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件,这个常用,但不建议用在背景执行过程;
-f :使用档名,需要在 f 之后要立即接档名,不要再加参数;
-C : 解压到指定目录;
拓展知识
1、在使用 tar 时,-f 选项需要放在最后,其余选项,比如 -c -v -z -x 可以随意调换位置;
2、tar 默认也是解压到当前路径,如需要指定到其他路径需要使用 -C 选项;
3、tar 格式的压缩文件支持不解压查看文件,使用 -t 选项即可;
指令演示
1、压缩文件/目录:
2、压缩文件过程中显示文件:
3、不解压查看文件:
4、解压文件/目录到当前路径,并在解压过程中显示文件:
5、解压文件/目录到指定路径,在解压过程中不显示文件:
bc 指令
bc 命令是任意精度计算器语言,通常在linux下当计算器用;它类似基本的计算器, 使用这个计算器可以做基本的数学运算;输入 quit 即可退出 bc:
bc 也可以与管道结合使用: