开发常用的 Linux 命令3(文本处理、打包和压缩)

简介: 开发常用的 Linux 命令3(文本处理、打包和压缩)

开发常用的 Linux 命令3(文本处理、打包和压缩)

image.png

作为开发者,Linux是我们必须掌握的操作系统之一。因此,在编写代码和部署应用程序时,熟练使用Linux命令非常重要。这些常用命令不得不会,掌握这些命令,工作上会事半功倍,大大提高工作效率。



五、文本处理


grep命令


分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等


基本用法

grep [options] pattern [files]


其中,pattern 是要查找的模式,可以是普通字符串或正则表达式。files 则是要搜索的文件列表,可以是单个文件、多个文件或者使用通配符匹配多个文件。

常用选项包括:

选项 执行
-i 忽略大小写
-r 递归搜索子目录中的文件
-w 只匹配整个单词,而不是部分字符串
-n 显示匹配行的行号
-c 统计匹配的行数
-v 显示不匹配的行



常用案例:

1.在文件 '/var/log/messages’中查找关键词"Aug"

grep Aug /var/log/messages


2.在文件 '/var/log/messages’中查找以"Aug"开始的词汇

grep ^Aug /var/log/messages 
• 1


3.选择 ‘/var/log/messages’ 文件中所有包含数字的行

grep [0-9] /var/log/messages


4.在目录 ‘/var/log’ 及随后的目录中搜索字符串"Aug"

grep Aug -R /var/log/*


5.将example.txt文件中的 “string1” 替换成 “string2”

sed 's/stringa1/stringa2/g' example.txt


6.从example.txt文件中删除所有空白行

sed '/^$/d' example.txt


7.使用正则表达式进行高级搜索。例如,要查找以数字开头的行,可以使用以下命令:

grep ^[0-9] file1.txt


4573757b81e24d449bcdd46147d58308.png


paste命令

paste命令用于合并多个文件的行,将它们按列对齐并输出到标准输出。使用以下语法来使用

paste [OPTION]... [FILE]...


示例:

有两个文件 file1.txtfile2.txt,将它们的每一行合并在一起

paste file1.txt file2.txt


这将输出类似于以下内容的结果:


Line 1 from file1.txt    Line 1 from file2.txt
Line 2 from file1.txt    Line 2 from file2.txt
Line 3 from file1.txt    Line 3 from file2.txt

2f88b0998acc4bd7ac450191e6b04cf7.png


2.合并两个文件或两栏的内容,中间用"+"区分

paste -d '+' file1 file2


3.如果只想合并特定的行数,可以使用 head 或 tail 命令将其与 paste 命令一起使用。例如,要合并文件 file1.txt 的前10行和文件 file2.txt 的后5行,使用以下命令:


head -n 10 file1.txt | paste -d '\t' - <(tail -n 5 file2.txt)


sort命令

用于对文本文件进行排序。

该命令的基本语法为:

sort [options] [file]


其中,[options] 为可选参数,用于控制排序的方式和输出格式;[file] 则表示要排序的文件路径。

以下是 sort 命令的一些实例:

1.排序两个文件的内容

sort file1 file2


00a5e0ff69d1436a9f1fe36a4d1fab2f.png


2.对文件进行反向排序:

sort -r file.txt
• 1

3.按照数值大小排序:

sort -n file.txt


4.忽略行首空格并按照第二个字段进行排序:

sort -k 2 file.txt
• 1

5.忽略行首空格并按照第二个字段进行数值排序:

sort -n -k 2 file.txt


6.取出两个文件的并集(重复的行只保留一份)

sort file1 file2 | uniq 
• 1

7.删除交集,留下其他的行

sort file1 file2 | uniq -u


a3436ac10e774a379f927d87208aa3ed.png


8.取出两个文件的交集(只留下同时存在于两个文件中的文件)

sort file1 file2 | uniq -d 
• 1

9.对文件file1.txt进行排序,并将结果保存到file2.txt中:

sort file1.txt > file2.txt
• 1



comm命令

comm 命令是一个用于比较两个已排序的文件行的工具。它可用于找到两个文件中共有的行、仅在第一个文件中独有的行,以及仅在第二个文件中独有的行。

comm 命令的基本语法如下:

comm [OPTION]... FILE1 FILE2


其中 FILE1FILE2 是要比较的两个已排序的文件。OPTION 是一些可选的参数,可以控制输出格式等。

常用的选项包括:

选项 执行
-1 隐藏仅出现在第一个文件中的行
-2 隐藏仅出现在第二个文件中的行
-3 隐藏同时出现在两个文件中的行
-i 在比较时忽略大小写


常用示例:

1.比较两个文件的内容只删除 ‘file1’ 所包含的内容

comm -1 file1 file2 
• 1


2.比较两个文件的内容只删除 ‘file2’ 所包含的内容

comm -2 file1 file2 
• 1

3.比较两个文件的内容只删除两个文件共有的部分

comm -3 file1 file2



六、打包和压缩文件


tar命令


对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压

常用的选项

选项 执行
-c 新建打包文件
-t 查看打包文件的内容含有哪些文件名
-x 解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j 通过bzip2的支持进行压缩/解压缩
-z 通过gzip的支持进行压缩/解压缩
-v 在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir 指定压缩/解压缩的目录dir



常用的示例:

1.创建 tar 包

tar -cvf archive.tar file1 file2


这条命令将会创建名为 archive.tar 的归档文件,并将指定的文件(file1、file2)添加到该文件中。 -c 选项表示“创建”,-v 表示“详细”(显示出打包过程中的所有文件),-f 指定了输出的文件名。


这个图片中,原本只有file1.txt,file2.txt,filename.txt,使用tar -cvf abc.tar file1.txt file2.txt filename.txt,将它们打包



2.解压 tar 包

tar -xvf archive.tar

这条命令将会解压名为 archive.tar 的归档文件,并将其中的内容提取到当前目录中。 -x 选项表示“解压”。

74400d86e04f47b2a84c878c3a1659e8.png

这个图片中,原本只有abc.tar,使用tar -xvf abc.tar ,将它们file1.txt file2.txt filename.txt解压到当前目录




3.同时进行压缩和打包

tar -czvf archive.tar.gz file1 file2 ...


这条命令将会创建名为 archive.tar.gz 的归档文件,并将指定的文件(file1、file2)添加到该文件中,并使用 gzip 进行压缩。 -z 选项表示“使用 gzip 压缩”。


4.解压一个叫做 'file1.bz2’的文件

bunzip2 file1.bz2


5.压缩一个叫做 ‘file1’ 的文件

bzip2 file1 
• 1

6.解压一个叫做 'file1.gz’的文件

gunzip file1.gz


7.压缩一个叫做 'file1’的文件

gzip file1 
• 1

8.最大程度压缩

gzip -9 file1


9.创建一个叫做 ‘file1.rar’ 的包

rar a file1.rar test_file 
• 1

10.同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’

rar a file1.rar file1 file2 dir1


11.解压rar包

rar x file1.rar 
• 1

12.创建一个zip格式的压缩包

zip file1.zip file1


13.解压一个zip格式压缩包

unzip file1.zip 
• 1

14.将几个文件和目录同时压缩成一个zip格式的压缩包

zip -r file1.zip file1 file2 dir1
相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
14天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
103 6
|
15天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
57 3
|
10天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
40 3
|
15天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
52 3
|
Shell Linux
Linux中常用的文本处理命令(echo、sort、uniq、tr、cut、split、eval)(上)
1、echo命令——输出 echo 命令主要用来显示字符串信息。
374 0
|
机器学习/深度学习 Linux Shell
Linux 基础-文本处理命令
Linux 基础-文本处理命令
184 0
|
Linux Shell
Linux中常用的文本处理命令(echo、sort、uniq、tr、cut、split、eval)(下)
1、echo命令——输出 echo 命令主要用来显示字符串信息。
254 0
|
Linux 开发工具 Perl
Linux学习笔记五:Linux 文本处理相关命令
大家好,昨天我们学习了Linux的Vim 编辑器等相关知识。今天学习下Linux的文本处理相关知识点。
|
存储 Linux vr&ar
Linux文本处理三剑客sed详解(正则匹配、命令示例)
sed读一行放到模式空间进行处理 sed是一种在线的、非交互式的编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,成为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾,文件内容并没有更改,除非使用重定向存储输出。 sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序
216 0
|
Perl Java 应用服务中间件
编程小技巧之 Linux 文本处理命令
合格的程序员都善于使用工具,正所谓君子性非异也,善假于物也。合理的利用 Linux 的命令行工具,可以提高我们的工作效率。