当前位置: 首页 > article >正文

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

认识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.kler.cn/a/451629.html

相关文章:

  • “高精度算法”思想 → 大数阶乘
  • TGRS | 可变形傅里叶卷积用于遥感道路分割
  • 2024年全球薄膜功率电感器行业总体规模、主要企业国内外市场占有率及排名
  • 国标GB28181视频监控平台与Liveweb视频监控汇聚平台对接方案
  • CentOS Stream 9 挂载Windows共享FTP文件夹
  • 修改el-select下拉框高度;更新:支持动态修改
  • 基于C#实现的(WinForm)模拟操作系统文件管理系统
  • 基于STM32 USB接口的温度控制器设计
  • 基于SpringBoot在线音乐系统平台功能实现十二
  • 【华为OD-E卷-狼羊过河 100分(python、java、c++、js、c)】
  • 2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36)
  • 母婴用品系统|Java|SSM|JSP|
  • Text2Reward学习笔记
  • 消息队列(二)消息队列的高可用原理
  • 面试场景题系列:设计一致性哈希系统
  • vue实现2048小游戏
  • DP83848以太网移植流程,可以TCP通信
  • element-puls封装表单验证
  • python中使用selenium执行组合快捷键ctrl+v不生效问题
  • C++ 的大括号的用法合集
  • Hive与HBase的区别有哪些
  • 商城小程序开发有哪些流程?传统商家如何抓住小程序的流量!
  • 【Python 图片下载器】一款专门为爬虫制作的图片下载器,多线程下载,速度快,支持续传/图片缩放/图片压缩/图片转换
  • 项目练习:element-ui的valid表单验证功能用法
  • 常见API
  • 【Rust自学】6.2. Option枚举