首页 > 系统相关 >linux三剑客(grep awk sed)

linux三剑客(grep awk sed)

时间:2023-07-10 23:32:19浏览次数:38  
标签:do 01 less 50% sed awk than nathing 三剑客

linux三剑客(grep awk sed)

简介

Linux三剑客主打信息处理,三剑合璧,几乎能满足你所有的信息需求。其中,grep专攻查找,sed精通编辑,awk主打分隔提取。

grep

如果你问我linux最叼的命令是什么的话,我会说是grep (global regular expressions print),在任何命令或文件流之后加上grep,面对密密麻麻的输出,它能帮你找到你想要的结果。

命令详解

--help: 命令提示

-c:仅列出文件中包含模式("文本或者正则")的行数,即匹配到的总行数。

# 示例一 对文件进行搜索 grep -c "key" file
[root czx]# cat clean.log 
[20230620-082401]: less than 50%, do nathing
[20230620-08:26:01]: less than 50%, do nathing
[20230620-08:27:01]: less than 50%, do nathing
[20230621-03:00:01]: less than 50%, do nathing
[20230624-11:00:01]: less than 50%, do nathing
[20230701-11:00:01]: less than 50%, do nathing
[20230708-03:00:01]: less than 50%, do nathing
[root@prod-pve-packet-gitlab-runner-001 czx]# grep -c less clean.log 
7

#示例二 对管道流进行搜索 cat clean.log | grep -c "key"
"key"
[root czx] # cat clean.log | grep -c less
7

-i:忽略模式中的字母大小写。

# 示例一 搜索文件中包含Less的关键字有几行
[root czx]# cat clean.log 
[20230620-082401]: less than 50%, do nathing
[20230620-08:26:01]: less than 50%, do nathing
[20230620-08:27:01]: less than 50%, do nathing
[20230621-03:00:01]: less than 50%, do nathing
[20230624-11:00:01]: less than 50%, do nathing
[20230701-11:00:01]: less than 50%, do nathing
[20230708-03:00:01]: less than 50%, do nathing
[root@prod-pve-packet-gitlab-runner-001 czx]# cat clean.log | grep -c Less
0

# *示例二 搜索文件中包含Less的关键字有几行 忽略大小写
[root@prod-pve-packet-gitlab-runner-001 czx]# cat clean.log | grep -ci Less
7

-l:列出带有匹配行的文件名。

# 示例一 递归搜索当前文件夹中包含less关键字的文件
[root czx]# grep -lr less *
clean.log
clean.sh

# 示例二 搜索clean.log、clean.sh文件中包含less的关键字
[root czx]# grep -l less clean.sh clean.log 
clean.sh
clean.log

-n:在每一行的最前面列出行号。

# 示例一 搜索clean.log文件中包含less的关键字,并显示行号
[root czx]# grep -n less clean.log 
1:[20230620-082401]: less than 50%, do nathing
2:[20230620-08:26:01]: less than 50%, do nathing
3:[20230620-08:27:01]: less than 50%, do nathing
4:[20230621-03:00:01]: less than 50%, do nathing
5:[20230624-11:00:01]: less than 50%, do nathing
6:[20230701-11:00:01]: less than 50%, do nathing
7:[20230708-03:00:01]: less than 50%, do nathing

-v:列出没有匹配模式的行。

# 示例一 搜索clean.log文件中不包含Less的关键字,并显示行号
[root czx]# grep -nv less clean.log 
1:[20230620-082401]: less than 50%, do nathing
2:[20230620-08:26:01]: less than 50%, do nathing
3:[20230620-08:27:01]: less than 50%, do nathing
4:[20230621-03:00:01]: less than 50%, do nathing
5:[20230624-11:00:01]: less than 50%, do nathing
6:[20230701-11:00:01]: less than 50%, do nathing
7:[20230708-03:00:01]: less than 50%, do nathing

-w:匹配整个单词,如果是字符串中包含这个单词,则不匹配。

# 示例一 搜索clean.log文件中的less单词,包含less的单词不做匹配
[root czx]# grep -wnless clean.log 
[20230620-082401]: less than 50%, do nathing
[20230620-08:26:01]: less than 50%, do nathing
[20230620-08:27:01]: less than 50%, do nathing
[20230621-03:00:01]: less than 50%, do nathing
[20230624-11:00:01]: less than 50%, do nathing
[20230701-11:00:01]: less than 50%, do nathing
[20230708-03:00:01]: less than 50%, do nathing

-o:只显示匹配到的字符串,每个匹配到的字符串单独显示一行。

# 示例一 搜索clean.log文件中的less,不包含不匹配的字符串
[root czx]# grep -wnless clean.log 
less
less
less
less
less
less
less

--color=[auto、always、never]:表示对匹配到的文本着色显示控制。

当然,grep也支持正则表达式的搜索

正则表达式的通配符如下:

*: 将匹配0个或者多个字符。 . :将匹配任何一个字符,且只能是一个字符。 [xyz] :匹配方括号中的任意一个字符。 [^xyz]:匹配方括号中的任意一个字符。 ^ : 锁定行的开头。 $ :锁定行的结尾。 ? :匹配前面的子表达式0次或者1次。

+:匹配前面的子表达式1次或者多次。 | : 匹配于|符号前或后的正则表达式。 {n,m} :最少匹配n次,最多匹配m次和BRE的区别是不需要加\。

标签:do,01,less,50%,sed,awk,than,nathing,三剑客
From: https://blog.51cto.com/u_16167766/6682029

相关文章

  • 初识 sed 和 gawk
    初识sed和gawk原创 饺子泡牛奶 饺子泡牛奶 2023-07-0108:40 发表于四川收录于合集#Linux与Shell18个本章内容:文本处理学习 sed 编辑器sed 编辑器基础命令gawk 编辑器入门sed 编辑器基础一、文本处理如果想在shell脚本中处理各种数据,则必须熟......
  • gawk 进阶
    gawk进阶原创 饺子泡牛奶 饺子泡牛奶 2023-07-0908:40 发表于四川收录于合集#Linux与Shell18个本章内容:使用变量处理数组使用模式结构化命令格式化打印内建函数自定义函数一、使用变量所有编程语言共有的一个重要特性是使用变量来存取值。gawk 编程......
  • Why is 127.0.0.1 used for localhost?
       Whyis127.0.0.1usedforlocalhost?Doesanyoneknowwhythatnumberwaschosen?Althoughit’snotdocumentedanywhere(atleastasfarasIknow),buttherearesomelogicalexplanations.Butbeforegoing......
  • Effective Diversity in Population-Based Reinforcement Learning
    发表时间:2020(NeurIPS2020)文章要点:这篇文章提出了DiversityviaDeterminants(DvD)算法来提升种群里的多样性。之前的方法通常都考虑的两两之间的距离,然后设计一些指标或者加权来增加种群多样性,这种方式容易出现cycling,也就是类似石头剪刀布的循环克制的关系,造成训练不上去,......
  • R语言和Python用泊松过程扩展:霍克斯过程Hawkes Processes分析比特币交易数据订单到达
    全文下载链接:http://tecdat.cn/?p=25880 最近我们被客户要求撰写关于泊松过程的研究报告,包括一些图形和统计输出。本文描述了一个模型,该模型解释了交易的聚集到达,并展示了如何将其应用于比特币交易数据。这是很有趣的,原因很多。例如,对于交易来说,能够预测在短期内是否有更多的买......
  • 巧用 awk 批量杀进程
    今天遇到线上的一个问题:我需要批量杀死某台机器的PHP进程,该怎么办?注意,不是php-fpm,是常驻任务。如果是一个进程,那就好办了,ps-ef|grepphp,找到PID然后kill-9PID……那批量怎么搞呢?答案是awk命令。AWK是一种处理文本文件的语言,是一个强大的文本分析工具。有了......
  • IDEA:AXIOS使用网页报错net::ERR_CONNECTION_REFUSED
     之前使用的是下载的文件,一直是报错的状态,页面加载不进来 之后进官网选择在线的之后可用。......
  • 【论文阅读】CrossFormer: A Versatile Vision Transformer Based on Cross-scale Att
    来自CVPR2021论文地址:https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/2108.00154.pdf代码地址:https://link.zhihu.com/?target=https%3A//github.com/cheerss/CrossFormer一、Motivation 主要还是ViT的历史遗留问题ViT在处理输入时,将图片划分为了相等大小的图像......
  • Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications lin
    2023-07-061、问题描述测试mybatis-plus代码功能的时候出现Causedby:com.mysql.cj.exceptions.CJCommunicationsException:Communicationslinkfailure问题2、问题解决通过查阅,发现,这个是数据库连接的问题。打开navicat连接数据库,发现连接不上。因此需要看数据库服务是否......
  • Paper Reading: Model-Based Synthetic Sampling for Imbalanced Data
    目录研究动机文章贡献本文方法训练特征模型生成临时采样数据生成最终的合成数据实验结果数据集和实验设置实验结果消融实验结果可视化和集成学习相结合对非线性特征模型的影响特征关系对合成样本的影响优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的......