Linux之文本三剑客

news/2024/7/8 7:48:25 标签: linux, 运维

Linux之三剑客

Linux的三个命令,主要是用来处理文本,grep,sed,awk,处理日志的时候使用的非常多

1 grep

对文本的内容进行查找

1) 基础用法

语法
grep 选项 内容|正则表达式 文件

选项:
-i  不区分大小写
-v  排除,反选
-n  显示行号
-c  统计个数


查看文件里包含有的内容
[root@localhost opt]# grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

查看内容不区分大小写
[root@localhost home]# grep -i 'root' a.txt 
root
ROOT

查看内容不包含有root
[root@localhost home]# grep -v 'root' a.txt 
ROOT
asdsad
43543543
/'.;.'

查询root显示行号
[root@localhost home]# grep -n 'root' a.txt 
1:root
6:root

查看包含有root行的个数
[root@localhost home]# grep -c 'root' a.txt 
2

2) 正则表达式

  • 基础正则表达式
正则表达式作用
^以xxx开头
$以xxx结尾
^$匹配空行
.任意一个字符
\转义字符
*前面的字符出现0-n次
.*匹配所有字符
[]只能是[]里的字符中任意一个
[^]非[]里的字符
  • 拓展正则表达式

egrep ‘拓展正则’ 文件名

正则表达式作用
|
+前面的字符出现1-n次
?前面的字符出现0次或1次
()把括号里的内容整体匹配
{m,n}前面的字符至少出现m次,最多出现n次
  • perl正则

grep -P ‘perl正则’ 文件名

正则表达式作用
\d所有的数字
\s空白字符
\w数字字母_

案例

查看/etc/sysconfig/selinux里不包含空行和注释信息

[root@localhost home]# egrep -v '^$|#' /etc/sysconfig/selinux 
SELINUX=disabled
SELINUXTYPE=targeted

2 sed

1) 概述

sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。

2) 语法

sed 选项 操作 文件

3) 查看

查看所有内容
sed -n 'p' 文件名

查看第3行内容
sed -n '3p' 文件名

查看第3-5行内容
sed -n '3,5p' 文件名

查看偶数行内容
sed -n 'n;p' 文件名

查看奇数行内容
sed -n 'p;n' 文件名

查看包含有root内容的行
sed -n '/root/p' 文件名

查看包含有a至包含有b的所有内容行
sed -n '/a/,/b/p' 文件名

案例:查看tomcat日志中的2023年6月1日的日志

[root@localhost opt]# sed -n '/2023-06-15/p' logsp2p.log

4) 运行过程

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5) 新增

a:往指定的行下追加内容

sed '3a 内容' 文件名 

c:往指定的行替换成新的内容

sed '3c 内容' 文件名 

i:往指定的行前插入内容

sed '3i 88 aaaaaaaaa' a.txt

如果想要修改源文件需要在选项使用-i

sed -i '3i 88 aaaaaaaaa' a.txt


[root@localhost home]# cat a.txt 
1 asdsadsadsa
2 asdasdsafdg
88 aaaaaaaaa
3 trytuytuyt
4 jhlkjlklj
5 32r3r43t
6 gjuku
7 gjukiuk
8 kiulkiul
9 wdewfew

6) 删除

删除指定的行
[root@localhost home]# sed '3d' a.txt 
1 asdsadsadsa
2 asdasdsafdg
4 jhlkjlklj
5 32r3r43t
6 gjuku
7 gjukiuk
8 kiulkiul
9 wdewfew

删除包含有内容的行
sed '/内容/d' 文件名

[root@localhost home]# sed '/1/d' a.txt 
2 asdasdsafdg
3 trytuytuyt
4 jhlkjlklj
5 32r3r43t
6 gjuku
7 gjukiuk
8 kiulkiul
9 wdewfew

[root@localhost home]# sed '/1/,/6/d' a.txt 
7 gjukiuk
8 kiulkiul
9 wdewfew

3 awk

取文本的行或列内容

语法

awk [-F '指定字符'] "{print 列|行}" 文件名
-F省略不写的时候.默认是以空白字符拆分


取列
awk '{print $0}' a.txt   以空白字符拆分  取列
$0 所有的列
$1 取第一列
$2 取第二列
......
$NF 取最后一列
$(NF-1) 取倒数第二列


取行
awk 'NR==行数' 文件名
NR 当前处理的行号

取1-6行
awk 'NR>=1 && NR<=6' 文件名        
&&|| 或


取行列
awk -F ':' '$3>=500{print$3}' 文件名


awk -F ':' '{print $3}' /etc/passwd | awk '$0>=500'

[root@localhost home]# awk -F ':' '$3>=500{print $3}' /etc/passwd
999
998

注意:条件筛选时使用单引号

http://www.niftyadmin.cn/n/5536845.html

相关文章

Qt使用sqlite数据库及项目实战

一.sqlite使用介绍 在Qt中使用SQLite数据库非常简单&#xff0c;SQLite是一个轻量级的嵌入式数据库&#xff0c;不需要单独的数据库服务器&#xff0c;完全使用本地文件来存储数据。 当在Qt中使用SQLite数据库时&#xff0c;需要涉及到一些SQL语句以及Qt中的相关函数&#xf…

生命在于学习——Python人工智能原理(3.2.2)

2.3 连续型随机变量 &#xff08;一&#xff09;定义 连续型随机变量即在一定区间内变量取值有无限个&#xff0c;或数值无法一一列举出来&#xff0c;例如某个地区男性健康成人的身高值、体重值。 如果对于随机变量X的分布函数F(X)&#xff0c;存在非负可积函数f(x)&#xf…

C语言使用void *类型作为函数传参

C语言使用void *怎么理解&#xff1a; 根据本人的理解&#xff0c;他就是指向操作数据区的首地址而已 凡是void指的数据区都要进行第二次初始化数据类型&#xff08;即dtype p(dtype)pdata&#xff09;*。 举两个例子&#xff1a; 传入函数&#xff1a; void tx_data(void …

[C++][CMake][CMake基础]详细讲解

目录 1.CMake简介2.大小写&#xff1f;3.注释1.注释行2.注释块 4.日志 1.CMake简介 CMake是一个项目构建工具&#xff0c;并且是跨平台的 问题 – 解决 如果自己动手写Makefile&#xff0c;会发现&#xff0c;Makefile通常依赖于当前的编译平台&#xff0c;而且编写Makefile的…

2.5 C#视觉程序开发实例1----开始设计架构一个简单的程序

2.5 C#视觉程序开发实例1----开始设计架构一个简单的程序 第一步目标&#xff1a; 1 IO交互&#xff1a;读取IO 并且显示 2 相机采集线程&#xff1a; In[0]上升沿&#xff0c;采集图像&#xff0c; 通知处理线程显示图片 3 图像处理线程&#xff1a; 接受信号&#xff0c;显示…

Map Set(Java篇详解)

&#x1f341; 个人主页&#xff1a;爱编程的Tom&#x1f4ab; 本篇博文收录专栏&#xff1a;Java专栏&#x1f449; 目前其它专栏&#xff1a;c系列小游戏 c语言系列--万物的开始_ 等 &#x1f389; 欢迎 &#x1f44d;点赞✍评论⭐收藏&#x1f496;三连支持…

精通SQL Server端口管理:添加与删除监听端口的指南

引言 SQL Server的端口管理是数据库管理员(DBA)必须掌握的关键技能之一。端口配置不仅关系到数据库的网络通信能力&#xff0c;还直接影响到数据库的安全性和性能。本文将详细介绍如何在SQL Server中添加和删除监听端口&#xff0c;以及相关的配置策略和最佳实践。 SQL Serve…

谷粒商城学习笔记-05-项目微服务划分图

文章目录 一&#xff0c;商城业务服务-前端服务二&#xff0c;商城业务服务-后端服务三&#xff0c;存储服务四&#xff0c;第三方服务五&#xff0c;服务治理六&#xff0c;日志七&#xff0c;监控预警系统1&#xff0c;Prometheus2&#xff0c;Grafana3&#xff0c;Prometheu…