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

news2024/11/19 9:24:43

开发常用的 Linux 命令3(文本处理、打包和压缩)
在这里插入图片描述
作为开发者,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 

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wvrdkg91-1681951818655)(image-20230419192049431.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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2bxWk1qV-1681951690356)(image-20230419193601975.png)]

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

paste -d '+' file1 file2 

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

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

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

Line 1 from file1.txt    Line 996 from file2.txt
Line 2 from file1.txt    Line 997 from file2.txt
Line 3 from file1.txt    Line 998 from file2.txt
Line 4 from file1.txt    Line 999 from file2.txt
Line 5 from file1.txt    Line 1000 from file2.txt

sort命令

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

该命令的基本语法为:

sort [options] [file]

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

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

1.排序两个文件的内容

sort file1 file2 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nKRFThqK-1681951690358)(image-20230419194439478.png)]

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

sort -r file.txt

3.按照数值大小排序:

sort -n file.txt

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

sort -k 2 file.txt

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

sort -n -k 2 file.txt

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

sort file1 file2 | uniq 

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

sort file1 file2 | uniq -u 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-90kemO22-1681951690359)(image-20230419194727568.png)]

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

sort file1 file2 | uniq -d 

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

sort file1.txt > file2.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jYjNGZQK-1681951690360)(image-20230419200132449.png)]

comm命令

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

comm 命令的基本语法如下:

comm [OPTION]... FILE1 FILE2

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

常用的选项包括:

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

常用示例:

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

comm -1 file1 file2 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wKRqJhFp-1681951690361)(image-20230419195757460.png)]

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

comm -2 file1 file2 

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

comm -3 file1 file2 

六、打包和压缩文件

tar命令

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

常用的选项

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

常用的示例:

1.创建 tar 包

tar -cvf archive.tar file1 file2

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fMOycLMg-1681951744655)(image-20230419202333311.png)]

这个图片中,原本只有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 选项表示“解压”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1RK4RPoZ-1681951744662)(image-20230419202612368.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 

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

gunzip file1.gz 

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

gzip file1 

8.最大程度压缩

gzip -9 file1 

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

rar a file1.rar test_file 

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

rar a file1.rar file1 file2 dir1 

11.解压rar包

rar x file1.rar 

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

zip file1.zip file1 

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

unzip file1.zip 

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

 zip -r file1.zip file1 file2 dir1 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/451265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c提高学习——指针作为函数参数的输入特性

输入特性 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> //在主调函数分配内存 被调函数使用 void func(char *p) {strcpy(p, "hello world"); } void test01() {//在栈上分配内存char buf[1024] …

《使用循环做一些练习》---C语言

目录 前言&#xff1a; 1.练习专题 1.1打印1-100之间的奇数 1.2计算n的阶乘 1.3计算到达n阶乘的前m个阶乘相加 1.4演示字符串动态变化的效果 2.goto语句 ❤博主CSDN:啊苏要学习 ▶专栏分类&#xff1a;C语言◀ C语言的学习&#xff0c;是为我们今后学习其它语言打好基础…

扬声器,打印机2键触摸VK3602K SOP8 2键2通道触摸检测芯片技术资料直接输出自动校准功能

型号&#xff1a;VK3602K 封装形式&#xff1a;SOP8 KPP2620 VK3602K具有2个触摸按键&#xff0c;可用来检测外部触摸按键上人手的触摸动作。该芯片具有较高的集成度&#xff0c;仅需极少的外部组件便可实现触摸按键的检测。 提供了2路直接输出功能,可通过IO脚选择输出电平。…

基于单片机的家庭防盗报警系统的设计与实现_kaic

基于单片机的家庭防盗报警系统 专业&#xff1a;物联网工程 摘要&#xff1a;本论文研究的是将AT89C52单片机芯片作为核心元器件的防盗报警系统,该系统除了具有直接报警的功能外,还额外增加了布防和红外感应的功能。和市场上的其他各类防盗报警器相比,该设计的不同之处在于它所…

KubeSphere 助力提升研发效能的应用实践分享

作者&#xff1a;卢运强&#xff0c;主要从事 Java、Python 和 Golang 相关的开发工作。热爱学习和使用新技术&#xff1b;有着十分强烈的代码洁癖&#xff1b;喜欢重构代码&#xff0c;善于分析和解决问题。原文链接。 我司从 2022 年 6 月开始使用 KubeSphere&#xff0c;到目…

开放原子训练营(第一季)铜锁探密:基于铜锁构建在线在线加密工具箱

基于铜锁构建Web在线加密工具库 搭建运行环境 实验⼿册中的实验都是以 docker 和 docker-compose 环境为主&#xff0c;基于 Ubuntu 20.04 容器镜像。 初始化项目 首先利用 IDE 创建一个 tongsuo_web 的空项目&#xff0c;接下来我们所有的文件都会创建在该项目中&#xff0…

AI如何帮助人类进而验证直觉的可靠性?

AI可以通过以下方式帮助人类寻找反例进行否定或寻找特别的架构&#xff1a; 1. 利用机器学习算法进行反例搜索。AI可以训练一个分类器&#xff0c;用于判断某个假设是否成立。通过反复训练和测试&#xff0c;AI可以识别出一些不合理的假设&#xff0c;并帮助人类进行进一步的验…

docker安装-顺利的安装docker--再也不烦心啦

centos7安装Docker全过程记录&#xff08;无坑版教程&#xff09; 一、安装前必读 在安装 Docker 之前&#xff0c;先说一下配置&#xff0c;我这里是Centos7 Linux 内核&#xff1a;官方建议 3.10 以上&#xff0c;3.8以上貌似也可。 注意&#xff1a;本文的命令使用的是 r…

004 鸿蒙应用开发-通知栏

目录 一.通知概述 通知简介 通知业务流程 广播的类型 接口说明 开发前期准备 二.发送普通文本类型通知 1.先初始化广播的请求request 2.然后发送广播 3.显示效果如下 三.发送长文本类型广播 1.构建发送广播的参数request 2.然后发送广播 3.显示效果如下 注意事项…

利用ArcGIS软件赋予tif影像空间参考坐标系

问题&#xff1a; 在处理数据时有一幅没有任何空间参考坐标信息的tif影像&#xff0c;实质上为一个照片。现在需要将其与一个有空间地理参考坐标信息的shp文件叠加在一起。如何解决这个问题呢&#xff1f; 已知信息&#xff1a; shp文件的空间地理参考 shp文件的边界与tif影像的…

CV中的注意力机制

注意力机制 计算机视觉中的注意力机制的基本思想 就是想让系统学会注意力 &#xff0c;能够忽略无关信息&#xff0c;关注重点信息。 1. 硬注意力机制&#xff08;Hard/Local Attention&#xff09; 对每个输入项分配的权重非0即1&#xff0c;和软注意不同&#xff0c;硬注…

Sentence Bert 阅读笔记

Sentence Bert 阅读笔记 论文 https://arxiv.org/abs/1908.10084 Supervised / Unsupervised / Semi-supervised 从训练上看&#xff0c;是 Supervised / Unsupervised 两种结合 Model Structure 本文提出了两个architecture&#xff0c;一个用于文本的分类&#xff0c;一…

【Python基础绘图】自定义函数,一键标注相关性热力图的显著性

相关性热力图标自动注显著性 01 引言 很早之前其实就写过一篇博客【python相关性热力图自动标记显著性】介绍如何在相关性热力图上自动标注显著性&#xff0c;不过收到好多同学私信问我数据源是啥样的&#xff0c;怎么计算的啊等等问题。所以今天打算重新写篇&#xff0c;并附…

【github开源】Linux iptables 界面化 分布式 管理平台 go vue,底座firewalld

快速部署&#xff1a;Uranus 目前最优的firewalld前端 如果你觉得项目符合你的使用场景, 劳烦大佬点个 &#x1f31f;&#x1f31f;&#x1f31f; 吧!!! 好人一生平安!!! Uranus Gateway Uranus使命是将iptables转化为类安全组功能的一个工具 Uranus Gateway 是一个分布式管…

Android Studio添加EasyPemissions

问题描述 按照EasyPermissions主页描述的那样添加完依赖后&#xff0c; 在程序中使用还是报错&#xff1a; Failed to resolve: pub.devrel:easypermissions:0.3.0 解决方法 首先&#xff0c;EasyPemissions属于别人的开源库&#xff0c;我们想使用的话&#xff0c;必须让…

RHCE(shell第二次)

1.编写脚本for1.sh,使用for循环创建20账户&#xff0c;账户名前缀由用户从键盘输入&#xff0c;账户初始密码由用户输入&#xff0c;例如: test1、test2、test3、.....、 test10 创建脚本for1 [rootserver ~]# vim xixi.sh 测试 2.编写脚本for2.sh,使用for循环,通过ping命令测…

中创AI|政治、工作、娱乐,ChatGPT正逐步影响我们的社会生产生活!

“作为政策官员&#xff0c;我们所做的一切&#xff0c;无论是编写会议记录还是批准预算文件&#xff0c;只是为了调动资源来解决一个常见问题。一旦我们从这个角度看待自己&#xff0c;ChatGPT就会成为推动者&#xff0c;而不是破坏者。” ——新加坡政府官员 ChatGPT可被广…

LC-1105. 填充书架(记忆化搜索 ==> 动态规划)

1105. 填充书架 难度中等169 给定一个数组 books &#xff0c;其中 books[i] [thicknessi, heighti] 表示第 i 本书的厚度和高度。你也会得到一个整数 shelfWidth 。 按顺序 将这些书摆放到总宽度为 shelfWidth 的书架上。 先选几本书放在书架上&#xff08;它们的厚度之和…

ajax写法和json的知识点

1. JQuery方式来实现AJAX 1.1 $.ajax()方式来实现AJAX 语法&#xff1a;$.ajax(url,[settings]);但是我们一般这么写$.ajax({键值对});。 $.ajax()来实现ajax的案例&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"…

consul集群搭建教程 - 多机集群

简言 1. 使用consul单节点有宕机&#xff0c;数据丢失的风险&#xff0c;为了安全&#xff0c;使用consul集群更靠谱 2. consul的各个版本下载地址在 Consul Versions | HashiCorp Releases 3. 本文使用consul的版本是consul1.15.1&#xff0c;所以请下载名字为 consul_1.15…