1、正则表达式
grep匹配
grep用来过滤文本内容,以匹配要查询的结果。
grep root /etc/passwd:匹配包含root的行
- -m 数字:匹配几次后停止
- -v:取反
- -i:忽略字符的大小写,默认的,可以不加
- -n:显示匹配的行号
- -c:统计匹配的行数
- -o:仅匹配的字符串
- -q:静默模式
- -A 数字:after,包含匹配到的行,以及后几行
- -B 数字:包含匹配到的行,以及前几行
- -C 数字:包含匹配到的行,以及前后各几行
- -w:匹配完整的单词的行
- -E:使用扩展正则表达式,egrep=grep -E
- -f:匹配两个文件中的相同内容,以第一个文件的内容为准(参照)
- -r:递归目录,查找文件内容,软连接内容不包含。
- -R:递归目录,查找文件内容,软连接内容包含。
sort排序
按行对文件的内容进行排序,也可以根据不同的数据类型进行排序
可见数字在前,字母在后。
- -f:忽略大小写,可以不加
- -b:忽略每行前面的空格
- -n:按照数字进行排序
- -u:去重,相同的内容仅显示一行
- -o:输出的文件名,把sort排序后的结果输出到指定的文件
案例1:按原文排序输出到指定文件里
cat -n 可以添加行数,sort -no 表示按数字排序输出到指定文件中,正好可以按原文输出。
uniq去重
用于统计或者忽略文件中连续出现的重复行,一般和sort结合使用
uniq 选线 文件名 = cat 文件名 | uniq 选项
- -c:统计连续重复的行的次数,并且合并重复的行
- -u:显示仅出现一次的行(包括不连续的重复的行)
- -d:仅显示重复出现的行(必须时连续的重复的行)
tr替换、压缩和删除
用来对标准输入的字符串进行替换、压缩和删除
tr 选项 参数
echo “字符串” | tr 选项
- -c:保留字符集1的字符,其他字符替换字符集2
- -d:删除属于字符集1的字符
- -s:将重复出现的字符串压缩成一个,用字符集2 替换 字符集1。
- -t:默认带t,替换字符集,一般不加
cut 截取
cut是对字段进行截取和裁剪
cut 选项 参数
cat 文件名 | cut 选项
- -d:指定分隔符(默认分隔符是tab)
- -f:指定要截取的字段
- -b:以字符的单位进行截取
- -c:以字符的单位进行截取
- -complement:排除指定的字段
- -output-delimiter:更改输出内容的分隔符
以:为分隔符,截取 /etc/passwd 的第1-3段字符。
文件合并
cat 1 2 > 3 —上下合并
paste 1 2 > 3 —左右合并
split文件拆分
有一个文件,太大,直接打开速度很慢,有什么办法提高素的?
- -l:按行分割
- -b:按大小分割
正则表达式
正则表达式区别通配符,正则表达式匹配文本的内容,命令的输出结果也属于文本内容,也可以使用正则表达式。
使用正则表达式,匹配内容最好用引号(单双都行)引起来,避免发生歧义。
通配符用来匹配文件名和目录名。
通配符
匹配文件名或者目录名
*:任意一个或多个字符
?:任意单个字符
[a-z]、[0-9]:匹配任意单个字符
基本正则
元字符
- . :任意单个字符
- \:表示转义符
- [a-b]、[A-Z]、[0-9]:匹配文件内容的任意单个字符
- [[:blank:]]:匹配空白字符,空格
- ():表示分组
- [^]:取反
次数表示
- *:任意字符,表示匹配前面的任意字符,0次也算,尽可能多的匹配
- . *:任意长度的字符,最少有1次,也就是匹配所有。
- \?:匹配前面的字符0次或者1次,可有可无
- \+:匹配前面的字符,最少出现1次,有且>=1
- \{n\}:匹配前面的字符等于多少次
- \{m,n\}:匹配前面的字符最少m次,最多n次
- \{,n\}:匹配前面的字符最多n次,只要比n小,都算
- \{m,\}:匹配前面的字符最少m次,只要比m大,都算
案例1:匹配ens33出现的IP地址
命令:ifconfig ens33 | grep -w "inet" | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"
位置锚定
- ^:以什么开始
- $:以什么结尾
- ^$:空行
^root$:表示匹配以root为开头和结尾的,即这一行只有root一个单词
词首锚定
- \b
词尾锚定
- \b
分组和逻辑条件
分组:()
或:\|
扩展正则
扩展正则表达式
grep -E = egrep
*:任意字符,表示匹配前面的任意字符,0次也算,尽可能多的匹配
. *:任意长度的字符,最少有1次,也就是匹配所有
?:匹配前面的字符0次或者1次,可有可无
+:匹配前面的字符,最少出现1次,有且>=1
{n}:匹配前面的字符等于多少次
{m,n}:匹配前面的字符最少m次,最多n次
{,n}:匹配前面的字符最多n次,只要比n小,都算
{m,}:匹配前面的字符最少m次,只要比m大,都算
补充案例
案例1:显示/etc/passwd中以sh结尾的行
案例2:查找/etc/inittab中含有“以s开头,并以d结尾的单词模式的行
案例3:查找ifconfig命令结果中的1-255之间的整数
案例4:在/etc/passwd中取出默认shell为bash的行
案例5:高亮显示passwd文件中冒号,及其两侧的字符
案例6:统计当前主机状态,使用netstat或者ss
方法1:netstat -antp | grep -v "State" | grep -v "Internet" | tr -s " " | cut -d " " -f 6 | sort | uniq -c
方法2:ss -antp | grep -v "State" | cut -d " " -f 1 | sort | uniq -c
案例7:统计nginx的访问日志当中多次出现的ip地址
cat /var/log/nginx/access.log | cut -d " " -f 1 | sort | uniq -c
相关文章:
1、正则表达式
grep匹配 grep用来过滤文本内容,以匹配要查询的结果。 grep root /etc/passwd:匹配包含root的行 -m 数字:匹配几次后停止 -v:取反-i:忽略字符的大小写,默认的,可以不加-n:…...
带有悬浮窗功能的Android应用
android api29 gradle 8.9 要求 布局文件 (floating_window_layout.xml): 增加、删除、关闭按钮默认隐藏。使用“开始”按钮来控制这些按钮的显示和隐藏。 服务类 (FloatingWindowService.kt): 实现“开始”按钮的功能,点击时切换增加、删除、关闭按钮的可见性。处…...
uniapp开发微信小程序笔记8-uniapp使用vant框架
前言:其实用uni-app开发微信小程序的首选不应该是vant,因为vant没有专门给uni-app设置专栏,可以看到目前Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。 但是我之前维…...
C++软件设计模式之组合模式与其他模式的协作举例
组合模式(Composite Pattern)、装饰器模式(Decorator Pattern)、享元模式(Flyweight Pattern)、迭代器模式(Iterator Pattern)和访问者模式(Visitor Pattern)…...
ArcGIS pro中的回归分析浅析(加更)关于广义线性回归工具的补充内容
在回归分析浅析中篇的文章中, 有人问了一个问题: 案例里的calls数据貌似离散,更符合泊松模型,为啥不采用泊松而采用高斯呢? 确实,在中篇中写道: 在这个例子中我们为了更好地解释变量&#x…...
mybatis-plus 实现分页查询步骤
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它提供了代码生成器、条件构造器、分页插件等多种功能,其中分页查询是一个常用的功能。 以下是如何在 MyBatis-Plus 中实现分页查询…...
Vue开发中常见优化手段总结
Tree Shaking or Trunk 动态引入(Dynamic Imports) 动态引入是指在代码执行过程中,根据需要动态加载模块,而不是在应用启动时一次性加载所有模块。这可以通过JavaScript的import()函数实现,它返回一个Promise对象&…...
IDEA无法创建java8、11项目创建出的pom.xml为空
主要是由于Spring3.X版本不支持JDK8,JDK11,最低支持JDK17 解决的话要不就换成JDK17以上的版本,但是不太现实 另外可以参考以下方式解决 修改spring初始化服务器地址为阿里云的 https://start.aliyun.com/...
TCP/IP网络编程-C++(上)
TCP/IP网络编程-C (上) 一、基于TCP的服务端/客户端1、server端代码2、client端代码3、socket() 函数3.1、函数原型3.2、参数解析3.2.1、协议族(domain参数)3.2.2、套接字类型(type参数)3.2.3、最终使用的协…...
在线绘制Nature Communication同款双色、四色火山图,突出感兴趣的基因
导读:火山图通常使用三种颜色分别表示显著上调,显著下调和不显著。通过为特定的数据点添加另一种颜色,可以创建双色或四色火山图,从而更直观地突出感兴趣的数据点。 《Nature Communication》文章“Molecular and functional land…...
ctfshow pwn wp
文章目录 Test_your_ncpwn-0pwn1pwn2pwn3pwn4 前置基础pwn5pwn6pwn7pwn8pwn9pwn10pwn11pwn12pwn13:gcc编译执行C语言代码pwn14:gcc编译执行C语言代码pwn15:nasm编译asm,ld链接为可执行文件pwn16:gcc编译汇编文件.s为可…...
【数据结构实战篇】用C语言实现你的私有队列
🏝️专栏:【数据结构实战篇】 🌅主页:f狐o狸x 在前面的文章中我们用C语言实现了栈的数据结构,本期内容我们将实现队列的数据结构 一、队列的概念 队列:只允许在一端进行插入数据操作,在另一端…...
数据结构 (11)串的基本概念
一、串的定义 1.串是由一个或者多个字符组成的有限序列,一般记为:sa1a2…an(n≥0)。其中,s是串的名称,用单括号括起来的字符序列是串的值;ai(1≤i≤n)可以是字母、数字或…...
快速高效求素数|质数的方法—Java(模板)
判断素数|质数方法时间效率:线性筛法>埃氏筛法>试除法 在写算法题的时候,各种各样跟素数有关的题目非常常见,本文列出了三种常见的判断素数的方法 三种求素数方法的优缺点 一、试除法 试除法的基本思想是:判断一个数 x 是否为素数&…...
探秘嵌入式位运算:基础与高级技巧
目录 一、位运算基础知识 1.1. 位运算符 1.1.1. 与运算(&) 1.1.2. 或运算(|) 1.1.3. 异或运算(^) 1.1.4. 取反运算(~) 1.1.5. 双重按位取反运算符(~~…...
iOS 17.4 Not Installed
0x00 系统警告 没有安装 17.4 的模拟器,任何操作都无法进行! 点击 OK 去下载,完成之后,依旧是原样! 0x01 解决办法 1、先去官网下载对应的模拟器: https://developer.apple.com/download/all/?q17.4 …...
RestTemplate 使用教程
RestTemplate 是 Spring 框架提供的一种用于执行HTTP请求的同步客户端。它简化了与HTTP服务器的交互,并支持RESTful Web服务。 1. 添加依赖 首先,确保你的项目中包含了Spring Web的支持。如果你使用的是Maven,在pom.xml文件中添加如下依赖&…...
windows下安装wsl的ubuntu,同时配置深度学习环境
写在前面,本次文章只是个人学习记录,不具备教程的作用。个别信息是网上的,我会标注,个人是gpt生成的 安装wsl 直接看这个就行;可以不用备份软件源。 https://blog.csdn.net/weixin_44301630/article/details/1223900…...
【贪心算法第五弹——300.最长递增子序列】
目录 1.题目解析 题目来源 测试用例 2.算法原理 3.实战代码 代码解析 注意本题还有一种动态规划的解决方法,贪心的方法就是从动态规划的方法总结而来,各位可以移步博主的另一篇博客先了解一下:动态规划-子序列问题——300.长递增子序列…...
【数据分析】基于GEE解析2000-2020年武汉市FVC时空变化特征
武汉市FVC时空变化特征解析 1. 写在前面2. 2000~2020年武汉市FVC时空变化特征解析2.1. 数据获取与预处理2.2. 辐射定标和大气校正2.3. 云层和云影去除2.4. FVC计算2.5. 时空分析2.6. 代码1. 写在前面 🌍✨在应对全球气候变化和环境监测的挑战中,植被盖度(Fraction Vegetati…...
springboot实战(19)(条件分页查询、PageHelper、MYBATIS动态SQL、mapper映射配置文件、自定义类封装分页查询数据集)
引言: 该类博客的学习是基于b站黑马视频springbootvue视频学习!具体围绕项目——"大事件"进行实战学习。 目录 一、功能介绍(需求)。 1、文章列表功能基本介绍。 2、条件分页查询功能与注意。 3、前端页面效果。&#x…...
Mongo数据库 --- Mongo Pipeline
Mongo数据库 --- Mongo Pipeline 什么是Mongo PipelineMongo Pipeline常用的几个StageExplanation with example:MongoDB $matchMongoDB $projectMongoDB $groupMongoDB $unwindMongoDB $countMongoDB $addFields Some Query Examples在C#中使用Aggreagtion Pipeline**方法一: …...
Docker部署mysql:8.0.31+dbsyncer
Docker部署mysql8.0.31 创建本地mysql配置文件 mkdir -p /opt/mysql/log mkdir -p /opt/mysql/data mkdir -p /opt/mysql/conf cd /opt/mysql/conf touch my.config [mysql] #设置mysql客户端默认字符集 default-character-setUTF8MB4 [mysqld] #设置3306端口 port33…...
银河麒麟桌面系统——桌面鼠标变成x,窗口无关闭按钮的解决办法
银河麒麟桌面系统——桌面鼠标变成x,窗口无关闭按钮的解决办法 1、支持环境2、详细操作说明步骤1:用root账户登录电脑步骤2:导航到kylin-wm-chooser目录步骤3:编辑default.conf文件步骤4:重启电脑 3、结语 Ὁ…...
【微服务】 Eureka和Ribbon
一、Eureka 服务调用出现的问题:在远程调用另一个服务时,我们采用的解决办法是发送一次http请求,每次环境的变更会产生新的地址,所以采用硬编码会出现很多麻烦,并且为了应对并发问题,采用分布式部署&#…...
C++设计模式(工厂模式)
一、介绍 1.动机 在软件系统中,经常面临着创建对象的工作,这些对象有可能是一系列相互依赖的对象;由于需求的变化,需要创建的对象的具体类型经常变化,同时也可能会有更多系列的对象需要被创建。 如何应对这种变化&a…...
nodejs第三方库sharp对图片的操作生成新图片、压缩、添加文字水印及图片水印等
Sharp是一个基于libvips的高性能Node.js图像处理库,它提供了广泛的功能,包括调整大小、裁剪、旋转、格式转换等。Sharp可以处理多种图像格式,并且能够高效地转换图像格式。 相关说明及用法看:https://sharp.nodejs.cn/ 安装&#…...
uniapp-vue2引用了vue-inset-loader插件编译小程序报错
报错信息 Error: Vue packages version mismatch: - vue3.2.45 (D:\qjy-myApp\admin-app\node_modules\vue\index.js) - vue-template-compiler2.7.16 (D:\qjy-myApp\admin-app\node_modules\vue-template-compiler\package.json) This may cause things to work incorrectly.…...
计算机的错误计算(一百六十七)
摘要 将计算机的错误计算(一百六十六)中算式的分母有理化,然后再在 MATLAB 讨论其计算精度。本节说明,MATLAB 的输出与(一百六十六)的输出几乎一致,有效数字的错误率也相同。 例1. 探讨 …...
交叉编译openSSH
升级原系统中的SSHd服务 由于原系统自带的SSH版本过低存在漏洞风险,所以需要升级新版本的SSH 交叉编译前准备 需要下面三个库,都是开源的,去对应的网站下载即可 openssh-9.6p1.tar.gz openssl-1.1.1w.tar.gz zlib-1.3.1.tar.gz 这里没有…...
从零开始学GeoServer源码(二)添加支持arcgis切片功能
文章目录 参考文章环境背景1、配置打包好的程序1.1、下载GeoServer的war包1.2、下载GeoWebCache1.3、拷贝jar包1.4、修改配置文件1.4.1、拷贝geowebcache-arcgiscache-context.xml1.4.2、修改geowebcache-core-context.xml1.4.3、修改geowebcache-servlet.xml 1.5、配置切片信息…...
Android OTA 更新面试题及参考答案
什么是 OTA 更新? OTA 更新即空中下载技术(Over-the-Air Technology)更新,是一种通过无线网络对移动设备的系统软件或应用程序进行远程更新的技术手段 。 其原理是设备通过移动网络或 Wi-Fi 连接到服务器,服务器检测设…...
搜维尔科技:通过Touch力反馈主手实时通讯机械臂,进行远程操作
通过Touch力反馈主手实时通讯机械臂,进行远程操作 搜维尔科技:通过Touch力反馈主手实时通讯机械臂,进行远程操作...
Java ArrayList 与顺序表:在编程海洋中把握数据结构的关键之锚
我的个人主页 我的专栏:Java-数据结构,希望能帮助到大家!!!点赞❤ 收藏❤ 前言:在 Java编程的广袤世界里,数据结构犹如精巧的建筑蓝图,决定着程序在数据处理与存储时的效率、灵活性以…...
React中事件处理和合成事件:理解与使用
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
在Vue3项目中引入省市区联动插件
1. 打开HBuilder X 图1 2. 新建一个空项目 文件->新建->项目->uni-app 填写项目名称:vue3demo 选择项目存放目录:D:/HBuilderProjects 一定要注意vue的版本,当前选择的版本为vue3 图2 点击“创建”之后进入项目界面 图3 其中各文件…...
动态内存管理(c语言)
我们通常开辟空间的方式 int val 20; //大小为4个字节 char arr[10] {0} //开辟出一块连续的空间且大小为10 但是上面开辟空间方式的特点 1.空间开辟大小是固定的 2.数组在声明得时候,必须指定数组得长度,它所需要得内存在编译时分配 但是以上的方式不能…...
SLF4J日志快速上手
tags: SpringBoot 日志 快速上手 SLF4J日志快速上手 第一步:添加日志相关配置 logging:level:root: INFO # 设置全局日志级别为 INFO,只显示重要的日志信息(略过 DEBUG 和 TRACE 级别)# org.hibernate.SQL: DEBUG # 对于 Hiber…...
【PyTorch】(基础三)---- 图像读取和展示
图像读取和展示 pytorch本身并不提供图像的读取和展示功能,利用pytorch执行计算机视觉任务的时候,通常是利用opencv等工具先进行图像处理,然后将结果转化成tensor类型传递给pytorch,在pytorch执行之后,也可以将tensor…...
【纪念365天】我的创作纪念日
过去的一年 没有注意加入csdn已经有一年了。 这几天翻看小猴儿的通知才发现时间来到了一年的纪念日。稍稍思索想要将这一段时间的学习到的知识以及偶然遇到的机遇做一下总结。 上一次写纪念日是来到csdn128天的时候, 200天前我的学习状态是非常疯狂的。 只记得我当时…...
flink学习(7)——window
概述 窗口的长度(大小): 决定了要计算最近多长时间的数据 窗口的间隔: 决定了每隔多久计算一次 举例:每隔10min,计算最近24h的热搜词,24小时是长度,每隔10分钟是间隔。 窗口的分类 1、根据window前是否调用keyBy分为键控窗口和非键控窗口…...
第十六届蓝桥杯模拟赛第二期题解—Java
第十六届蓝桥杯模拟赛/校赛第二期个人题解,有错误的地方欢迎各位大佬指正 问题一(填空题) 【问题描述】 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问, 2024 的最大的质因数是多少? …...
数据库-MySQL-Dynamic-Datasource源码解析
文章目录 前言一、简介二、整体流程三、核心解析四、总结 前言 多数据源的应用在日常项目中也是很常见的场景。 dynamic-datasource的功能,用起来的确很方便,只需要一个DS注解,加上一些简单的配置即可完成多数据源的切换。究竟是怎么做到的…...
uniapp+vue2+uview2.0导航栏组件二次封装
样式 代码 <template><view class"navBar"><u-navbar :title"title" :titleColor"titleColor" :bgColor"bgColor" :safeAreaInsetTop"safeAreaInsetTop":autoBack"true" leftClick"leftClic…...
【Git 工具】用 IntelliJ IDEA 玩转 Git 分支与版本管理
文章目录 一、使用 IDEA 配置和操作 Git1.1 查看 Idea 中的 Git 配置1.2 克隆 Github 项目到本地 二、版本管理2.1 提交并推送修改2.2 拉取远程仓库2.3 查看历史2.4 版本回退 三、分支管理3.1 新建分支3.2 切换分支3.2 合并分支3.4 Cherry-Pick 参考资料 一、使用 IDEA 配置和操…...
异或-java-leetcode
1486.数组异或操作 给你两个整数,n 和 start 。 数组 nums 定义为:nums[i] start 2*i(下标从 0 开始)且 n nums.length 。 请返回 nums 中所有元素按位异或(XOR)后得到的结果。 示例 1: 输入…...
Jmeter中的测试片段和非测试原件
1)测试片段 1--测试片段 功能特点 重用性:将常用的测试元素组合成一个测试片段,便于在多个线程组中重用。模块化:提高测试计划的模块化程度,使测试计划更易于管理和维护。灵活性:可以通过模块控制器灵活地…...
NeurIPS 2024 有效投稿达 15,671 篇,数据集版块内容丰富
NeurIPS,全称 Neural Information Processing Systems Conference,是神经信息处理系统的年度学术会议。该会议始于 1987 年,当时名为 NIPS。随着人工智能领域的快速发展,其影响力逐渐扩大,被越来越多的研究者和企业关注…...
力扣101. 对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。 提示: 树中节点数目在范围 [1, 1000] 内-100 < Node.val < 100 进阶:你可以运用递归和迭代两种方法解决这个问题吗? 代码: /*** Definition for a binary …...
Ubuntu 环境下的 C/C++ 编译与调试配置
详细教学文档:Ubuntu 环境下的 C/C 编译与调试配置 本文档将手把手引导你完成在 Ubuntu 环境中设置 VS Code 的 tasks.json 和 launch.json,实现以下目标: 统一管理输出文件:将所有编译生成的可执行文件统一存放到项目的 build …...