开发常用的 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的迁移。
相关文章
|
3天前
|
Linux
会玩这10个Linux命令,一定是个有趣的IT男!
会玩这10个Linux命令,一定是个有趣的IT男!
|
2天前
|
安全 Linux 开发者
Linux笔记之ldd命令详解
`ldd`命令是Linux环境下一个非常实用的工具,用于显示一个程序运行时所需的共享库依赖。它帮助开发者和系统管理员快速诊断程序运行问题,特别是在处理"找不到库文件"或者"错误的库文件版本"等错误时。然而,出于安全的考虑,对于不信任的可执行文件,应该慎用 `ldd`命令,可以考虑使用其他工具如 `objdump`。总的来说,懂得如何妥善且安全地使用 `ldd`,对于维护一个稳定和高效的Linux系统来说,是非常重要的。
18 9
|
2天前
|
Linux Shell
linux命令
linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
2天前
|
SQL 存储 分布式计算
Linux退出Hive命令
【8月更文挑战第14天】
|
3月前
|
NoSQL Java Linux
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
|
3月前
|
Linux
linux(二十七)打包压缩命令bzip2~
linux(二十七)打包压缩命令bzip2~
49 0
|
3月前
|
Linux Windows
Linux:为什么要打包和压缩?
Linux:为什么要打包和压缩?
Linux:为什么要打包和压缩?
|
3月前
|
Linux
linux命令行打包、压缩及解压缩
linux命令行打包、压缩及解压缩
20 0
|
3月前
|
Linux
linux 下 打包并使用xz 压缩
linux 下 打包并使用xz 压缩
34 1
|
3月前
|
Linux
linux(二十六)打包压缩命令gzip
linux(二十六)打包压缩命令gzip
71 1

热门文章

最新文章