文本内容处理命令和正则表达式

文本内容处理命令

grep

用来过滤文本内容,以匹配要查询的结果。

-m 数字 匹配几次后停止:

grep -m 1 /root/etc/passwd  #查找包含root的行

-v 取反

-i 忽略字符的大小写,默认的,可以不加

-n 显示匹配的行号

-c 统计匹配的行数

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

-q 静默模式

-A 数字 after 包含匹配到的行,以及后几行。

-B 数字 包含匹配到的行,以及前几行

-C 数字 包含匹配到的行,以及前后各几行

-w 匹配整个单词

-E 使用扩展正则表达式 egrep=grep -E

-f 匹配两个文件中的相同内容,以第一个文件的内容为准

-r 递归目录,查找文件内容,软连接的内容不包含

-R 递归目录,查找文件内容,包含软连接的内容

grep -m \# 匹配\#次后停止
grep -m 1 root /etc/passwd #多个匹配只取第一个-A \# after, 后\#行
grep -A3 root /etc/passwd #匹配到的行后3行也显示出来
-B \# before, 前\#行
-C \# context, 前后各\#行grep [] file 默认使用正则表达式来匹配模式
“^……”表示以……开头,“……$”表示以……结尾
“^$”表示空行
ifconfig ens33 |grep -Eo "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"|head -1
ifconfig ens33 |grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}"|head -1

sort

sort 对文本文件中的数据进行排序

sort -n 将字符串按数值排序

sort -M 将三字符的月份名按月份排序(常用于Linux日志文件每行起始的时间戳)

sort -b 排序时忽略起始的空白字符

sort -r 逆序排序(升序变降序,便于查看目录中哪些文件占用磁盘空间最多)

sort -R 随机排序

sort -f 选项忽略(fold)字符串中的字符大小写

sort -u 选项(独特,unique),合并重复项,即去重

sort -k 排序键从POS1位置开始,到POS2位置结束(如果指定了POS2的话)

sort -t 指定字段分隔符

例:sort -t ':' -k 3 -n /etc/passwd

uniq 

uniq 单独使用是对连续重复的行去重
uniq -c    显示每行连续出现的次数
uniq -d    仅显示连续重复过的行
uniq -u    仅显示不曾连续重复的行

cat log|cut -d" " -f1|sort|uniq -c|sort -nr |head  查看访问日志,找出访问前10名的用户

tr

格式:tr [选项]... SET1 [SET2]
# SET 是一组字符串,一般都可按照字面含义理解
tr -d 删除
tr -s 压缩
tr -c 用字符集2中的字符替换字符串1中字符集的补集,要求字符集为ASCII。

cut

cut -d (delimiter): 指明分隔符,默认tab
cut -f 想要获取的字段
    #: 第#个字段,例如 3
    #,#,#:离散的多个字段,例如 1,3,6
    #-#:连续的多个字段, 例如 1-6
    混合使用:1-3,7
cut -c 取每行第几个字符
cut -b 取每行第几个字符
cut --complement 排除指定的字段
cut --output-delimiter 替换分隔符

例:cut -d ":" -f 1-3 /etc/passwd        # 1-3表示1到3
    cut -d ":" -f 1,3 /etc/passwd        # 1,3表示1和3
    cut d ":" -f 1-3 --output-delimiter=" " /etc/passwd            # 将“:”分隔符替换为“空格”

 split

split [-b ][-C ][-l ][要切割的文件][输出文件名前缀][-a ]

split -b<字节> 指定按多少字节进行拆分,也可以指定 k、M、G、T 等单位。
split -<行数>或-l<行数> 指定每多少行要拆分成一个文件。
输出文件名前缀:设置拆分后的文件的名称前缀,没有指定拆分后文件的命名方式的情况下,split 会默认采用 x 字符作为文件前缀,并在前缀后加上编号,默认从 aa 开始。
split -a<后缀长度>:默认的后缀长度是 2,也就是按 aa、ab、ac 这样的格式依次编号。

统计当前主机状态

ss -antp | grep -v '^State' | cut -d ' ' -f 1 | sort | uniq -c

统计nginx的访问日志当中多次出现的ip地址 

cat /var/log/nginx/access.log | cut -d " " -f 1 | sort | uniq -c

正则表达式 

通配符:用来匹配文件名或者目录名
*:任意一个或多个字符

?:任意的单个字符

匹配任意单个字符

[a-z]
[A-Z]
[0-9]

正则表达式

按照一定的格式和符号来匹配文件内容(命令输出的结果)

正则表达式的格式:

基本正则表达式 grep

扩展正则表达式 grep -E = egrep

使用正则表达式,匹配内容最好是用 引号 引起来。

元字符

.:任意单个字符
\:表示转义符
[0-9]:匹配文件内容的任意单个数字
[a-z]:匹配文件内容的任意单个小写字母
[A-Z]:匹配文件内容的任意单个大写字母
():分组
[^]:取反
[:alnum:]:字母和数字,等价于**[0-9a-zA-Z]**
[:alpha:]:代表任何英文大小写字符,亦即 [A-Za-z]
[[:lower:]]:小写字母相当于 [a-z]
[[:upper:]]:大写字母相当于 [A-Z]
[[:blank:]]:空白字符(空格和制表符)
[:space:]:包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比 [:blank:] 包含的范围广
[:cntrl:]:不可打印的控制字符(退格、删除、警铃…)
[:digit:]:十进制数字
[:xdigit:]:十六进制数字
[:graph:]:可打印的非空白字符
[:print:]:可打印字符
[:punct:]:标点符号
\w:匹配单词构成部分,等价于**[[:alnum:]]**
\W:匹配非单词构成部分,等价于**[^_[:alnum:]]**
\S:匹配任何非空白字符。等价于 [^ \f\n\r\t\v]
\s:匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [\f\n\r\t\v]

匹配次数

*:任意字符,表示匹配前面的任意字符,0次,尽可能多的匹配
.*:匹配任意长度的字符,最少要有一次。也就是匹配所有
?:匹配前面的字符0次或者1次,可有可无
\+:匹配前面的字符,最少出现1次有且>=1
\{n\}:匹配前面的字符等于多少次
\{m,n\}:匹配前面的字符最少m次,最多n次
\{,n\}:匹配前面的最多n次,只要比n小,都算
\{n, \}:匹配前面的字符至少n次,只要比n大,都算
使用拓展正则表达式将"\"去掉即可

位置锚定

^:以什么开始
$:以什么结尾
^$:空行(tab或\n)
^root$ :匹配整个单词,且这一行只有这个单词
词首锚定:\b
词尾锚定:\b

显示/etc/passwd中以sh结尾的行

grep -E "sh$" /etc/passwd

查找/etc/inittab中含有“以s开头,并以d结尾的单词”模式的行

grep -E "\bs[a-z]*d\b" /etc/inittab

查找ifconfig命令结果中的1-255之间的整数

ifconfig ens33 | grep -Eo "\b[1-9]\b|\b[1-9][0-9]\b|\b1[0-9]{2}\b|\b2[0-4][0-9]\b|\b25[0-5]\b"

在/etc/passwd中取出默认shell为bash的行

grep -E "bash$" /etc/passwd

高亮显示passwd文件中冒号,及其两侧的字符

grep -E ".?:.?" /etc/passwd

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

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

相关文章

大数据治理:解锁数据价值,引领未来创新

目录 引言 一、大数据治理的定义 二、大数据治理的重要性 三、大数据治理的核心组件 四、大数据治理的实践案例 1. 数据标准化 2. 数据质量管理 案例一&#xff1a;医疗行业的大数据治理——智能医疗助手守护健康 引言 在数字化时代&#xff0c;数据已成为企业最宝贵的…

如何在 Ubuntu 18.04 上设置 Apache 虚拟主机

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 Apache Web 服务器是一种流行的在互联网上提供网站服务的方法。截至2019年&#xff0c;据估计&#xff0c;它为所有活跃网站的29%…

【Leetcode Top 100】142. 环形链表 II

问题背景 给定一个链表的头节点 h e a d head head&#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 n u l l null null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 n e x t next next 指针再次到达&#xff0c;则链表中存在环。 为了…

「网络安全入门」什么是网络安全

如今&#xff0c;组织的信息系统和数据面临着许多威胁。而人们了解网络安全的所有基本要素是应对这些威胁的第一步。 网络安全是确保信息完整性、机密性和可用性(ICA)的做法。它代表了应对硬盘故障、断电事故&#xff0c;以及来自黑客或竞争对手攻击等防御和恢复能力。而后者包…

通讯专题4.1——CAN通信之计算机网络与现场总线

从通讯专题4开始&#xff0c;来学习CAN总线的内容。 为了更好的学习CAN&#xff0c;先从计算机网络与现场总线开始了解。 1 计算机网络体系的结构 在我们生活当中&#xff0c;有许多的网络&#xff0c;如交通网&#xff08;铁路、公路等&#xff09;、通信网&#xff08;电信、…

深度学习模型:LSTM (Long Short-Term Memory) - 长短时记忆网络详解

一、引言 在深度学习领域&#xff0c;循环神经网络&#xff08;RNN&#xff09;在处理序列数据方面具有独特的优势&#xff0c;例如语音识别、自然语言处理等任务。然而&#xff0c;传统的 RNN 在处理长序列数据时面临着严重的梯度消失问题&#xff0c;这使得网络难以学习到长…

算法笔记:力扣24. 两两交换链表中的节点

思路&#xff1a; 本题最简单的就是通过递归的形式去实现 class Solution {public ListNode swapPairs(ListNode head) {if(head null || head.next null){return head;}ListNode next head.next;head.next swapPairs(next.next);next.next head;return next;} } 对于链…

ehr系统建设方案,人力资源功能模块主要分为哪些,hrm平台实际案例源码,springboot人力资源系统,vue,JAVA语言hr系统(源码)

eHR人力资源管理系统&#xff1a;功能强大的人力资源管理工具 随着企业规模的不断扩大和业务需求的多样化&#xff0c;传统的人力资源管理模式已无法满足现代企业的需求。eHR人力资源管理系统作为一种先进的管理工具&#xff0c;能够为企业提供高效、准确、实时的人力资源管理。…

【Android】从事件分发开始:原理解析如何解决滑动冲突

【Android】从事件分发开始&#xff1a;原理解析如何解决滑动冲突 文章目录 【Android】从事件分发开始&#xff1a;原理解析如何解决滑动冲突Activity层级结构浅析Activity的setContentView源码浅析AppCompatActivity的setContentView源码 触控三分显纷争&#xff0c;滑动冲突…

OGRE 3D----2. QGRE + QQuickView

将 OGRE(面向对象图形渲染引擎)集成到使用 QQuickView 的 Qt Quick 应用程序中,可以在现代灵活的 UI 框架中提供强大的 3D 渲染功能。本文将指导您如何在 QQuickView 环境中设置 OGRE。 前提条件 在开始之前,请确保您已安装以下内容: Qt(版本 5.15 )OGRE(版本14.2.5)…

GAGAvatar: Generalizable and Animatable Gaussian Head Avatar 学习笔记

1 Overall GAGAvatar&#xff08;Generalizable and Animatable Gaussian Avatar&#xff09;&#xff0c;一种面向单张图片驱动的可动画化头部头像重建的方法&#xff0c;解决了现有方法在渲染效率和泛化能力上的局限。 旋转参数 现有方法的局限性&#xff1a; 基于NeRF的方…

论文笔记-WWW2024-ClickPrompt

论文笔记-WWW2024-ClickPrompt: CTR Models are Strong Prompt Generators for Adapting Language Models to CTR Prediction ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器摘要1.引言2.预备知识2.1传统CTR预测2.2基于PLM的CTR预测 3.方法3.1概述3.2模态转换3.…

基于若依框架和Vue2 + Element-UI 实现图片上传组件的重写与优化

背景 在使用 若依分离版Element-UI 的图片上传组件时,需要根据业务需求进行定制化处理,比如: 需要传递额外的业务参数到后端需要对上传路径进行修改需要对上传组件进行样式定制 实现步骤 1. 创建本地组件 首先在业务模块下创建本地的图片上传组件: src/views/xxx/compone…

预训练模型与ChatGPT:自然语言处理的革新与前景

目录 一、ChatGPT整体背景认知 &#xff08;一&#xff09;ChatGPT引起关注的原因 &#xff08;二&#xff09;与其他公司的竞争情况 二、NLP学习范式的发展 &#xff08;一&#xff09;规则和机器学习时期 &#xff08;二&#xff09;基于神经网络的监督学习时期 &…

同时在github和gitee配置密钥

同时在github和gitee配置密钥 1. 生成不同的 SSH 密钥 为每个平台生成单独的 SSH 密钥。 # 为 GitHub 生成密钥&#xff08;默认文件路径为 ~/.ssh/github_id_rsa&#xff09; ssh-keygen -t rsa -b 4096 -C "your_github_emailexample.com" -f ~/.ssh/github_id_…

GRAG: Graph Retrieval-Augmented Generation

GRAG: Graph Retrieval-Augmented Generation 摘要 简单检索增强生成 (Naive RAG) 聚焦于单一文档的检索&#xff0c;因此在处理网络化文档时表现不足&#xff0c;例如引用图、社交媒体和知识图谱等应用中非常常见的场景。为了解决这一限制&#xff0c;我们提出了图检索增强生…

使用Python OpenCV实现图像形状检测

目录 一、环境准备 二、读取和预处理图像 读取图像 灰度化 滤波去噪 三、边缘检测 四、查找轮廓 五、绘制轮廓 六、形状分类 七、显示结果 八、完整代码示例 九、总结 图像形状检测是计算机视觉领域中的一项关键技术,广泛应用于工业自动化、机器人视觉、医学图像处…

微知-git如何添加空目录的几种方式?(.gitkeep, githook, gitconfig)

背景 在Git中&#xff0c;空目录&#xff08;空文件夹&#xff09;默认是不会被跟踪的&#xff0c;因为Git主要跟踪文件的变化。但是如何让git添加空目录&#xff1f; #mermaid-svg-3Y4NksLyEeuMs4FC {font-family:"trebuchet ms",verdana,arial,sans-serif;font-si…

11.25.2024刷华为OD

文章目录 HJ76 尼科彻斯定理&#xff08;观察题&#xff0c;不难&#xff09;HJ77 火车进站&#xff08;DFS&#xff09;HJ91 走格子方法&#xff0c;&#xff08;动态规划&#xff0c;递归&#xff0c;有代表性&#xff09;HJ93 数组分组&#xff08;递归&#xff09;语法知识…

【RISC-V CPU Debug 专栏 1 -- RISC-V debug 规范】

文章目录 RISC-V Debug调试用例支持的功能限制和不包括的内容RISC-V 调试架构的主要组件用户与调试主机调试翻译器调试传输硬件调试传输模块(DTM)调试模块(DM)调试功能触发模块版本介绍RISC-V Debug RISC-V 调试规范为 RISC-V 处理器提供了一套标准化的调试接口和功能,旨…