Linux复习4——shell与文本处理

devtools/2025/3/12 9:50:31/

认识vim编辑器

#基本语法格式:

vim 文件名

•如果文件存在,进入编辑状态对其进行编辑

•如果文件不存在,创建文件并进入编辑状态

例:

[root@localhosttest]# vim practice.txt

#Vim 编辑器三种模式:

命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。

输入模式:正常的文本录入。

末行模式:保存或退出文档,以及对文件内容进行替换。

#命令模式常用命令:

#末行模式常用命令:

通配符

定义:一类具有特殊含义的键盘字符,称之为元字符

常用:*, ?, [],{}

功能: 用于模糊搜索文件,也就是匹配文件名

举例:?用于匹配任意一个字符,a?b可以匹配abb、acb,不能匹配ab

实例:

例1:查找当前目录下以“.txt”结尾的文件

find . -name *.txt

例2:显示当前目录下以“.txt”结尾的文件的详细属性信息

ll *.txt

例3:查询文件名只有一个字符的文件

find . -name ?

例4:查询不是以.txt结尾的文件

find . ! -name *.txt

例5:查询以名字是bak或者bbk的文件

find -name "b[ab]k"

grep

find是查找文件,grep查找文件内容

不支持*和?等通配符

使用正则表达式搜索文本

命令格式:

grep [选项] 查找条件 目标文件

工作方式:在一个或多个文件中搜索符合查找条件的字符串,并打印出该字符串所在行的内容。不影响原文件内容。

选项:

--color=auto: 对匹配到的文本着色显示

-v: 显示不被pattern(查找条件)匹配到的行

-i: 忽略字符大小写

-n:显示匹配的行号

-c: 统计匹配的行数

-o: 仅显示匹配到的字符串

-e:实现多个选项间的逻辑or关系

-E:支持使用扩展正则表达式

正则表达式

概念:由普通字符和特殊字符(元字符)组成的字符串匹配的模式

功能:描述一个字符串模式

组成:

一般字符:没有特殊意义的字符

特殊字符(meta字符):元字符,有在正则表达式中有特殊意义

注意:

正则表达式规则与文件名通配符规则不同

正则表达式用于文本处理的场合

文件通配符用于文件处理的场合

不同软件对正则表达式的定义会有差异

linux正则表达式以行为单位处理字符串

[]用法

[]定义集合:

基本用法:

在一对方括号之间的字符为集合,表示匹配该集合内的任意单字符

如:单字符正则表达式[abcd]与a或b、c、d匹配

圆点、星号、反斜线在方括号内时,代表它们自己

如:[\*.]可匹配3个单字符

[]定义集合:

用减号-定义一个区间:

如[A-Z]、[0-9]、[A-Za-z0-9]

[][]集合中含左右中括号两个字符

减号在最后,则失去表示区间的意义

如:[az-]只与3个字符匹配

用^表示补集:

^在开头,表示与除集合内字符外的任意字符匹配

如:[^a-z]匹配任意非小写字符

[^][]匹配任意非中括号字符

^不在开头,则失去表示补集的意义

如:[a-z^]能匹配27个单字符

grep和find的区别

grep:查找文件中的字符串——类比在Word中查找内容

按行查找

find:查找文件或目录——类比windows“搜索”功能

重定向与管道命令

1. 输入输出重定向——重定向至/dev/null

/dev/null:特殊文件,不保存数据,写入其中的内容都会被丢弃。将命令的输出重定向到它,会起到“禁止输出”的效果

command > /dev/null 屏蔽stdout

command 2> /dev/null 屏蔽stderr

command > /dev/null 2>&1 屏蔽stdout和stderr:

2.管道符“|”

概念:一种通信机制,通常用于进程间通信。将前面一个进程的输出直接作为下一个进程的输入

作用:将前后的命令衔接在一起,形成一个管道线

格式:命令1 | 命令2 | …… | 命令n

例1:使用grep命令通过匹配文件/etc/passwd中的关键词/sbin/nologin找出了所有被限制登录系统的用户,计算一个有多少个用户。

找出被限制登录用户的命令是grep "/sbin/nologin" /etc/passwd;

统计文本行数的命令则是wc -l。

使用管道符连接两条命令:

[root@localhost ~]# grep "/sbin/nologin" /etc/passwd | wc -l

例2:ls -l /etc | less

例3:ps -ef | grep firefox 过滤firefox相关进程信息

例4:echo "123456" | passwd --stdin 用户名 修改密码


http://www.ppmy.cn/devtools/145466.html

相关文章

【算法复健】1225-前缀树和单词搜索

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、前缀树是什么?1.定义2.实现a .数组b.hashmap 二、例题-添加与搜索单词(数据结构设计)1.题目2.思路3.代码 前言 提示&am…

SQLite 是一个轻量级的嵌入式数据库,不需要安装服务器,直接使用文件即可。

下载 SQLite 命令行工具 访问 SQLite 官方网站。 下载适合你操作系统的命令行工具(例如 sqlite3.exe)。 创建 SQLite 数据库文件 打开命令行工具(例如 Windows 的 cmd 或 PowerShell)。 导航到你希望保存数据库文件的目录。 运…

Win11提示fveapi.dll丢失是什么原因?fveapi.dll丢失怎么办?

一、fveapi.dll丢失的成因与影响 成因: 系统更新不完整:Win11系统在更新过程中,如果某个环节出现问题,可能会导致fveapi.dll等系统文件未能正确更新或安装。软件冲突:某些第三方软件可能与系统文件发生冲突&#xff…

C语言-数据结构-图

目录 一,图的概念 1,图的定义 2,图的基本术语 二,图的存储结构 1,邻接矩阵 2,邻接表 三,图的遍历 1,深度优先搜索 2,广度优先搜素 四,生成树和最小生成树 1,生成树的特点: 2,最小生成树 (1)普利姆算法Prim (2)普里姆算法思路 五,最短路径 1,Dijkstra算法 2,Fl…

软考:系统架构设计师教材笔记(持续更新中)

教材中的知识点都会在。其实就是将教材中的废话删除,语言精练一下,内容比较多,没有标注重点 系统架构概述 定义 系统是指完成某一特定功能或一组功能所需要的组件集,而系统架构则是对所有组件的高层次结构表示,包括各…

在低版本 CUDA 环境下安装高 CUDA 版本的 PyTorch 及 DGL

项目中,代码环境需要 PyTorch 1.12.0 以上版本,但服务器上的 CUDA 版本仅为 10.1,官方支持的 PyTorch 最高版本为 1.7.0。导致无法直接使用所需的 PyTorch 版本。而且,DGL 也需要 0.9.1 版本,而 CUDA 10.1 不支持该版本…

8K+Red+Raw+ProRes422分享5个影视级视频素材网站

Hello,大家好,我是后期圈! 在视频创作中,电影级的视频素材能够为作品增添专业质感,让画面更具冲击力。无论是广告、电影短片,还是品牌宣传,高质量的视频素材都是不可或缺的资源。然而&#xff…

设置postgreSQL字段自增

CREATE SEQUENCE ai_mirror_opcode_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; nextval(ai_mirror_opcode_seq) 手动创建序列并设置默认值: 如果你需要更细粒度的控制,可以手动创建一个序列,并将其设置为某个字段的…