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.mzph.cn/news/866077.shtml

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

相关文章

PE文件学习

一、介绍 PE文件&#xff0c;即Portable Executable文件&#xff0c;是一种标准的文件格式&#xff0c;主要用于微软的Windows操作系统上。这种格式被用来创建可执行程序&#xff08;如.exe文件&#xff09;、动态链接库&#xff08;.DLL文件&#xff09;、设备驱动&#xff0…

每日一练:攻防世界:Hidden-Message

追踪UDP数据流&#xff0c;没有任何隐藏信息&#xff1a; WP&#xff1a; 观察流量包 每个流的唯一的区别就是UDP的源地址srcport的最后一位在变化 都提取出来就是二进制序列 用tshark提取一下 //使用tshark过滤出源端口&#xff0c;使用cut裁取端口的最后一位 tshark -r 8…

金融(基金)行业信创国产化特点及统一身份认证解决方案

金融业在政策支持及自主驱动下&#xff0c;金融信创取得快速发展。从2020年开始&#xff0c;三期试点已扩容至5000余家&#xff0c;进入全面推广阶段。而基金行业信创建设与银行、证券、保险这些试点行业相比&#xff0c;进展较为缓慢。 基金行业信创当前面临的问题 与多家基…

开源的基于图像识别本地实名认证系统(本项目不借助任何api) v1.0

前言: 本项目主要是代替昂贵的实名认证服务api或者sdk&#xff0c;目前仍然存在很多缺点 一、具体介绍 1.组成: 人脸识别服务器分为两部分: (1)、http服务端 server.py共有四个函数: DrawFaceinIdCard:用户上传身份证图片后&#xff0c;服务端会对身份证进行抠人像和ocr处理…

[2024]docker-compose实战 (1)前言

前言 本文用来记录使用docker-compose来实战搭建一个多项目的测试环境. 环境中包含nodejs, php, html, redis, MongoDB, mysql. 在本次部署流程中, 尽量保证原镜像的"干净简洁", 尽量不会往镜像中加入各种软件和插件, 所有的配置尽可能的在宿主机映射进去. 项目…

互联网摸鱼日报(2024-07-03)

互联网摸鱼日报(2024-07-03) 36氪新闻 A股创纪录分红2.23万亿&#xff0c;两亿投资者如何掘金&#xff1f; 小米OV背后的隐秘功臣&#xff1a;揭ODM巨头华勤发家史 看麻了&#xff1a;日本科学家盯上“活人皮” 抛弃可口可乐的年轻人正在爱上无糖茶饮料 6月新能源交付量&a…

基于改进高斯-拉普拉斯滤波器的一维时间序列平滑与降噪(MATLAB)

以图像处理为例&#xff0c;拉普拉斯算子是基于图像的二阶导数来找到边缘并搜索过零点&#xff0c;传统的拉普拉斯算子常产生双像素宽的边缘&#xff0c;对于较暗区域中的亮斑进行边缘检测时&#xff0c;拉普拉斯运算就会使其变得更亮。因此&#xff0c;与梯度算子一样&#xf…

尺度变换挑战:深入解析目标检测中的尺度变化问题

尺度变换挑战&#xff1a;深入解析目标检测中的尺度变化问题 目标检测是计算机视觉领域的一个核心任务&#xff0c;它旨在识别图像中的目标并确定它们的位置。然而&#xff0c;目标检测算法在实际应用中常常面临尺度变化问题&#xff0c;即目标在图像中的大小可能差异巨大&…

OpenCV——实现裁剪YOLO格式的图片目标并按图片名保存

import os import cv2def crop_image(image_path, label_path, output_folder):# 读取图片img cv2.imread(image_path)height, width, _ img.shape# 读取标签文件with open(label_path, r) as file:labels file.readlines()img_id 1# 遍历每个标签for label in labels:part…

如何提高实验室分析结果的准确性呢

要提高实验室分析结果的准确性&#xff0c;可以从以下几个方面着手&#xff1a; 1、选择合适的实验方法 不同的实验方法具有不同的优缺点&#xff0c;实验方法的准确度直接影响测定结果的准确度。因此&#xff0c;在选择实验方法时&#xff0c;需要根据实验目的、实验原理、实…

spring security + vue,登录功能

前端代码&#xff1a;https://gitee.com/forgot940629/vuelogin 后端代码&#xff1a;https://gitee.com/forgot940629/springbootloginv2 参考代码&#xff1a;https://github.com/PuZhiweizuishuai/SpringSecurity-JWT-Vue-Deom 基于前后端分离实现登录功能。登录成功后后端向…

Java for循环倒序输出

1.实现一个for循环的倒序输出 在Java中&#xff0c;要实现一个for循环的倒序输出&#xff0c;通常我们会使用数组或集合&#xff08;如ArrayList&#xff09;作为数据源&#xff0c;然后通过倒序遍历这个数组或集合来实现。下面&#xff0c;我将给出一个详细的示例&#xff0c…

Linux高并发服务器开发(十一)UDP通信和本地socket通信

文章目录 1 TCP和UDP的区别2 UDPAPI流程服务端流程客户端流程 代码服务端客户端 3 本地socket通信服务端客户端客户端代码 1 TCP和UDP的区别 2 UDP API 流程 服务端流程 客户端流程 代码 服务端 #include<sys/socket.h> #include<stdio.h> #include<arpa/in…

二叉树与堆相关的时间复杂度问题

目录 满二叉树与完全二叉树高度h和树中节点个数N的关系 向上调整算法&#xff1a; 介绍&#xff1a; 复杂度推导&#xff1a; 向下调整算法&#xff1a; 介绍&#xff1a; 复杂度推导&#xff1a; 向上调整建堆&#xff1a; 介绍&#xff1a; 复杂度推导&#xff1a;…

Redis 集群 三主三从 主节点之间数据不会同步说明

Redis 集群中有一个特性&#xff0c;它不使用强一致性模型&#xff0c;而是使用最终一致性。Redis 集群通过分区 (sharding) 的方式来存储数据&#xff0c;不同的键可能会被存储在不同的节点上。每个键通过一个哈希槽 (hash slot) 来决定应该被存储到哪个节点上。一个 Redis 集…

Java中怎么使用httpclick发送application/x-www-form-urlencoded请求并接收text/xml数据呢?

项目中遇到一个请求方式要求&#xff1a; 1 、POST 请求 2 、Content-Type: text/xml; charsetutf-8 项目是Java代码 使用的httpclick发送的请求&#xff0c;接下来让我看下如何实现&#xff0c;本部分只提供核心请求代码&#xff0c;之前分享过httpclick发送请求工具类&…

CPU的核心数和线程数

CPU的核心数和线程数 一、关系&#xff1a; 1、线程数可以模拟出不同的CPU核心数。 CPU的核心数指的是硬件上存在着几个核心&#xff0c;而线程数可以模拟出多个核心数的功能。线程数越多&#xff0c;越有利于同时运行多个程序&#xff0c;因为线程数等同于在某个瞬间CPU能同…

【C++】POCO学习总结(二十):交叉编译poco-1.12.5p2

1、版本说明 1.1 poco-1.13 截止2024-07-03&#xff0c;POCO的稳定版本最高为poco-1.13.3&#xff0c;注意从poco-13.0开始需要编译器支持C17&#xff0c;否则编译时报错。 常见报错有&#xff1a; 1&#xff09;std::string的append重载版本问题&#xff0c;报错信息如下 …

Golang 基于 archive/zip 包实现文件

这里写自定义目录标题 摘要引言Go语言简介archive/zip 包概述&#xff1a;环境准备基础概念&#xff1a;压缩的基本概念&#xff1a;解压缩的基本概念&#xff1a;ZIP格式的特点&#xff1a;ZIP文件的组成&#xff1a;使用ZIP的优点&#xff1a; 使用 archive/zip 包进行文件压…

利用Arcgis绘制克吕金插值图

工作中我们常用到克吕金插值图&#xff0c;下面简单介绍下使用Arcmap绘制克吕金插值图的方法及注意事项&#xff0c;希望能帮到大家。 一、准备工作 软件&#xff1a;Arcgis 数据&#xff1a;点图层、研究范围 二、操作步骤 1 添加数据 打开Arcmap&#xff0c;从添加位置将…