当前位置: 首页 > news >正文

教你如何做网站/办理培训机构需要具备的条件

教你如何做网站,办理培训机构需要具备的条件,数据分析师就业前景如何,成都有哪些比较做网站比较好的一,正则表达式 1:正则表达式概述 1.正则表达式的定义 正则表达式(Regular Expression,RegEx)是一种高度灵活的文本处理工具,它结合了字符序列、特殊控制字符(称为元字符)、以及特定…

一,正则表达式

1:正则表达式概述

 1.正则表达式的定义

正则表达式(Regular Expression,RegEx)是一种高度灵活的文本处理工具,它结合了字符序列、特殊控制字符(称为元字符)、以及特定的构造规则,形成一种模式描述语言。这种模式能够精准地匹配、查找、替换或提取文本中的特定字符串或模式。正则表达式的核心价值在于其强大的模式描述能力,使得开发者能够以简洁的表达式来应对复杂的文本处理需求。

2.正则表达式的用途

正则表达式广泛应用于多种场合,简化了字符串处理任务,主要用途包括:

  • 搜索匹配:快速在文本中查找符合特定规则的字符串,比如查找所有网址或邮箱地址。
  • 数据验证:确保用户输入的数据格式正确,比如检查是否输入了合法的电话号码或日期格式。
  • 文本替换:批量替换文本中的某种模式,例如将所有电子邮件地址替换为“[邮箱]”。
  • 信息提取:从复杂的文本中提取有用信息,如从网页中提取所有链接。
  • 文本分隔:依据特定规则将文本切分成多个部分,用于数据分析或预处理。

 2:基础正则表达

1.基础正则表达式示例

(1)查找特定字符

示例:在log.txt中查找含有"ERROR"关键词的行。

  • 命令grep 'ERROR' log.txt
  • 说明:直接匹配字符串"ERROR",适用于快速定位错误信息。
(2)利用中括号"[]"匹配集合字符

示例:查找所有以数字或小写字母开头的行。

  • 命令grep '^[0-9a-z]' data.txt
  • 说明[0-9a-z]匹配数字0-9和小写字母a-z中的任意一个,^确保匹配的是行首字符。
(3)行首"^"与行尾"$"的应用

示例:查找所有以".conf"为文件扩展名的行。

  • 命令ls | grep '\.conf$'
  • 说明\.用于匹配实际的点字符,$确保".conf"位于行尾,从而精确匹配文件扩展名。
(4)任意字符"."与重复字符"*"的组合

示例:查找所有以任何形式的"email"出现的行。

  • 命令grep -E 'email.*' messages.log
  • 说明.匹配任意字符(除了换行符),*表示前面的元素可以重复零次或多次,所以email.*匹配以"email"开始的任何文本。
(5)连续字符范围"{}"的精确定位

示例:查找所有长度为6的密码。

  • 命令grep -E '\b\w{6}\b' passwords.txt
  • 说明\w{6}匹配正好六个单词字符(字母、数字或下划线),\b确保匹配的是完整单词。

2. 元字符总结

  • .:转义点字符,用于匹配实际的"."字符。
  • ^ 和 $:分别匹配字符串的开始和结束,注意在方括号[]内时失去特殊含义。
  • :定义字符集,如[abc]匹配"a"、"b"或"c"。
  • $$:分组,用于捕获匹配或应用量词于整个组。
  • |:逻辑或,匹配左右两边的任一模式,如cat|dog匹配"cat"或"dog"。
  • {n,m}:指定匹配次数的范围,如\d{3,5}匹配3到5位数字。
  • ?、*、+:分别代表前面的元素可以重复0次、0次或多次、1次或多次。
  • \w、\d、\s:预定义字符类,分别匹配字母数字、数字、空白字符。
  • \W、\D、\S:与上述相反,匹配非字母数字、非数字、非空白字符。
  • 反向引用:通过\n引用之前分组的内容,如(\w+)\s+\1匹配重复的单词。
  • 忽略大小写:在某些命令中(如grep)使用-i选项,如grep -i 'error'
  • 多行模式:在某些情况下,使用-z(如在grep中)处理多行文本作为一个整体。

二,文本处理器

        1:sed工具

                1.sed命令常见用法

-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i :直接修改读取的文件内容,而不是输出到终端。

                2.用法示例

  • 输出符合条件的文本(p)

    • 示例sed '/pattern/p' filename
      会在匹配到pattern的行后面直接再输出该行,相当于打印匹配到的行。
  • 删除符合条件的文本(d)

    • 示例sed '/pattern/d' filename
      删除所有匹配到pattern的行。
  • 替换符合条件的文本

    • 示例sed 's/old/new/g' filename
      将文件中所有匹配到old的字符串替换为newg标志表示全局替换。
  • 迁移符合条件的文本

    • 示例sed '/pattern/{h;d};G' filename
      匹配到pattern的行会被暂存(h命令),然后删除(d命令),接着在每个非匹配行后追加暂存的行(G命令)。
  • 使用脚本编辑文件

    • 示例:创建一个sed脚本script.sed,内容为s/pattern/replacement/,然后执行sed -f script.sed filename
  • sed直接操作文件示例

    • 示例sed -i 's/old/new/g' filename
      直接在原文件中进行替换,-i选项表示就地编辑。

        2:awk工具

                1.awk常见用法

$0           表示整个当前行

$1           每行第一个字段

NF          字段数量变量

NR          每行的记录号,多文件记录递增

FNR        与NR类似,不过多文件记录不递增,每个文件都从1开始

\t            制表符

\n           换行符

FS          BEGIN时定义分隔符

RS       输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)

~            匹配,与==相比不是精确比较

!~           不匹配,不精确比较

==         等于,必须全部相等,精确比较

!=           不等于,精确比较

&&     逻辑与

||             逻辑或

+            匹配时表示1个或1个以上

/[0-9][0-9]+/   两个或两个以上数字

/[0-9][0-9]*/    一个或一个以上数字

FILENAME 文件名

OFS      输出字段分隔符, 默认也是空格,可以改为制表符等

ORS        输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕

-F'[:#/]'   定义三个分隔符

                2.用法示例

(1):按行输出文本

awk -F":" '{print}' /etc/passwd //输出所有

awk -F":" '{print $0}' /etc/passwd //输出所有

awk -F: 'NR==3,NR==6{print}' /etc/passwd  //显示第3行到第6行

awk -F: 'NR>=3&&NR<=6{print}' /etc/passwd       //显示第3行到第6行

awk -F: 'NR==3||NR==6{print}' /etc/passwd       //显示第3行和第6行

awk '(NR%2)==1{print}' /etc/passwd //显示奇数行

awk '(NR%2)==0{print}' /etc/passwd //显示偶数行

awk '/^root/{print}' /etc/passwd //显示以root开头的行

awk '/nologin$/{print}' /etc/passwd //显示以nologin结尾的行

awk 'BEGIN {x=0};/\/bin\/bash$/{x++};END {print x}' /etc/passwd      //统计以/bin/bash结尾的行数

awk 'BEGIN{RS=""};END{print NR}' /etc/ssh/sshd_config //统计以空行分隔的文本段落数

awk '{print NR,$0}' /etc/passwd                                 //输出每行的行号

awk -F: '{print NR,NF,$NF,"\t",$0}' /etc/passwd      //依次打印行号,字段数,最后字段值,制表符,每行内容

awk -F: 'NR==5{print}'  /etc/passwd                         //显示第5行

route -n|awk 'NR!=1{print}'                                       //不显示第一行

awk -F: '{print NF}' /etc/passwd                                //显示每行有多少字段

awk -F: '{print $NF}' /etc/passwd                              //将每行第NF个字段的值打印出来

 awk -F: 'NF==4 {print }' /etc/passwd                       //显示只有4个字段的行

awk -F: 'NF>2{print $0}' /etc/passwd                       //显示每行字段数量大于2的行

(2):按字段输出文本

awk -F":" '{print $3}' /etc/passwd //显示第三列

awk -F":" '{print $1 $3}' /etc/passwd                       //$1与$3相连输出,无空格,

awk -F":" '{print $1,$3}' /etc/passwd                       //多了一个逗号,输出第1和第3个字段,有空格

awk -F: '$2=="!!" {print}' /etc/shadow //统计密码为空的shadow记录

awk 'BEGIN {FS=":"}; $2=="!!" {print}' /etc/shadow ##显示密码为空的用户的shadow信息

awk -F ":" '$7~"/bash" {print $1}' /etc/passwd ##显示第七个字段为/bash的行的第一个字段

awk -F: 'NR==5{print}' /etc/passwd                         //显示第5行

awk -F":" '{print $1 " " $3}' /etc/passwd                  //$1与$3之间手动添加空格分隔

(3):通过管道,双引号调用Shell命令

awk -F: '/bash$/{print | "wc -l"}' /etc/passwd     ##统计bash用户的个数

awk 'BEGIN {while ("w" | getline) n++ ; {print n-2}}'   ##统计在线用户的数量

awk 'BEGIN {"hostname" | getline;print $0}'      ##输出当前主机名

awk -F: '$1~/mail/ && $3>6 {print }' /etc/passwd         //逻辑与,$1匹配mail,并且$3>6

awk -F: '{if($1~/mail/ && $3>8) print }' /etc/passwd  

awk -F: '$1~/mail/ || $3>1000 {print }' /etc/passwd       //逻辑或,统计以mail开头或第3列大于1000的行

awk -F: '{if($1~/mail/ || $3>1000) print }' /etc/passwd 

相关文章:

Shell编程之正则表达式与文本处理器

一&#xff0c;正则表达式 1&#xff1a;正则表达式概述 1.正则表达式的定义 正则表达式&#xff08;Regular Expression&#xff0c;RegEx&#xff09;是一种高度灵活的文本处理工具&#xff0c;它结合了字符序列、特殊控制字符&#xff08;称为元字符&#xff09;、以及特定…...

linux文本粘贴格式错乱的问题

vi/vim :set paste然后再 insert, 粘贴...

第二节课 6月13日 ssh密钥登陆方式

centos和ubuntu openssh服务的初始安装 一、实验&#xff1a;ubuntu系统激活root用户 ubuntu系统如何激活root用户&#xff0c;允许root用户ssh登陆&#xff1f; 1、ubuntu默认root用户未设置密码&#xff0c;未激活 激活root用户&#xff0c;设置root密码 sudo passwd roo…...

图书馆借阅表

DDL 用户表 (Users) 图书表 (Books) 图书类别表 (BookCategories) 图书与类别关联表 (BookCategoryRelations) 借阅记录表 (BorrowRecords) 供应商表 (Suppliers) 采购记录表 (PurchaseRecords) CREATE TABLE Users (user_id INT PRIMARY KEY AUTO_INCREMENT,username …...

云动态摘要 2024-06-25

给您带来云厂商的最新动态&#xff0c;最新产品资讯和最新优惠更新。 最新产品更新 Web应用防火墙 - 验证码支持微信小程序接入 阿里云 2024-06-25 支持客户从微信小程序场景下接入&#xff0c;提供人机识别的安全防护。 工业数字模型驱动引擎 - iDME控制台换新升级 华为云…...

Docker编译nanopc-t4源码流程介绍

官方文档 Android系统编译 vnc加环境变量配置 https://github.com/friendlyarm/docker-cross-compiler-novnc 下载 git clone https://github.com/friendlyarm/docker-ubuntu-lxde-novnc cd docker-ubuntu-lxde-novnc docker build --no-cache -t docker-ubuntu-lxde-novnc …...

Redis八股文目录

Redis缓存穿透-CSDN博客 Redis缓存击穿-CSDN博客 Redis缓存雪崩&#xff08;主从复制、哨兵模式&#xff08;脑裂&#xff09;、分片集群&#xff09;-CSDN博客 Redis双写一致性-CSDN博客 Redis持久化-CSDN博客 Redis数据过期、淘汰策略-CSDN博客 分布式锁&#xff08;Re…...

Ext JS+Spring Boot 使用Ajax方式上传文件

实现方式 使用 Ext JS 进行 AJAX 调用以传递文件通常涉及到创建一个 FormData 对象,将文件附加到这个对象中,然后通过 Ext JS 的 AJAX API 发送这个对象。 基本步骤 以下是使用 Ext JS 发送文件的基本步骤: 准备文件和数据: 首先需要获取到要传递的文件 创建 FormData 对…...

windows桌面运维----第九天

1、新的电脑需要安装哪些驱动&#xff1a; 显卡驱动、声卡驱动、主板驱动、网卡驱动、打印机驱动、外设驱动、 2、网络打印机如何开启打印机共享核客户端连接共享打印机&#xff1a; 一、打开控制面板并定位到设备和打印机&#xff1a; 首先&#xff0c;我们在电脑桌面上找…...

【Docker】安装和加速

目录 1.安装 2.了解 docker 信息 3.查询状态 4. 重新启动Docker 1.安装 yum install –y docker 2.了解 docker 信息 cat /etc/redhat-release 3.查询状态 systemctl status docker 4.支持 1.12 的 docker 镜像加速 sudo mkdir -p /etc/docker sudo tee /etc/docke…...

如何关闭win10音量调节时 左上角出现的黑框

目录 1.谷歌浏览器&#xff1a; 2.edge浏览器&#xff1a; 3.没得办法的办法&#xff1a; 4.官方回复&#xff1a; 1.谷歌浏览器&#xff1a; 把这行地址chrome://flags/#hardware-media-key-handling 输入到chrome的地址栏里&#xff0c;回车&#xff0c;把黄色里的Hardwa…...

准确率(accuracy)、召回率(recall)的意义和区别

准确率&#xff08;accuracy&#xff09;、召回率&#xff08;recall&#xff09;的意义和区别 对于准确率和召回率&#xff1a;一句话&#xff0c;准确率就是“找的对”&#xff0c;召回率就是“找的全” &#xff08;精确率&#xff1a;正样本中找对的准确率&#xff09; 注…...

分享5个卫星影像查看网站

我们在《分享5个图源二维码及使用方法》一文中&#xff0c;为你分享了5个图源二维码。 现在再为你为分享5种在线卫星影像&#xff0c;如果你需要更多的图源二维码&#xff0c;请在文末查看领取方式。 MapBox卫星影像 可能很多人都知道MapBox的地名路网地图&#xff0c;但可能…...

37岁,被裁员,失业三个月,被面试官嫌弃“太水”:就这也叫10年以上工作经验?

今年部门要招两个自动化测试&#xff0c;这几个月我面试了几十位候选人。发现一个很奇怪的现象&#xff0c;面试中一问到元素定位、框架api、脚本编写之类的&#xff0c;很多候选人都对答如流。但是一问到实际项目&#xff0c;比如“项目中UI自动化和接口自动化如何搭配使用&am…...

如何选择一款优质的酱香酒?

很多人在评价一款酒的好坏时&#xff0c;往往只关注一个标准&#xff1a;口感是否顺滑。然而&#xff0c;真正品鉴一款酒的品质&#xff0c;首要的是香味&#xff0c;其次是味道&#xff0c;最后才是岁月带来的柔和。这种由岁月赋予的柔和&#xff0c;才能展现出酒的力量感和层…...

SQL Server数据库安装

原文&#xff1a;https://blog.c12th.cn/archives/26.html SQL Server数据库安装 测试&#xff1a;笔记本原装操作系统&#xff1a;Windows 10 家庭中文版 资源分享链接&#xff1a;提取码&#xff1a;qbt2 注意事项&#xff1a; 请严格按照步骤安装&#xff0c;SQL软件安装较…...

Hadoop 面试题(十)

1. 简述下列关于Hadoop命令中&#xff0c;命令执行成功返回0&#xff0c;执行失败返回-1&#xff0c;下列命令返回-1的是 &#xff1f; A&#xff1a;hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2 B&#xff1a;hdfs dfs -mv hdfs:///testData file:///tmp/testData …...

Python网络安全项目开发实战,如何看清Web攻击

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: Python网络安全项目开发实战_看清Web攻击_编程案例解析实例详解课程教程.pdf 一、引言 在网络安全领域,Web攻击一直是一个严峻的问题。攻击者通过各…...

持续总结中!2024年面试必问的操作系统面试题(三)

上一篇地址&#xff1a;持续总结中&#xff01;2024年面试必问的操作系统面试题&#xff08;二&#xff09;-CSDN博客 五、什么是分页和分段&#xff1f;它们之间有什么区别&#xff1f; 分页和分段是操作系统中用于内存管理的两种不同技术&#xff0c;它们都旨在允许操作系统…...

请说明Thread类中run和start的区别,从方法的区别,及运行结果的区别分别说明

方法本身的区别 start() 方法&#xff1a; run()方法是Thread类的一个普通方法&#xff0c;它包含了线程要执行的代码。当你直接调用一个线程的run()方法&#xff08;如myThread.run()&#xff09;&#xff0c;你实际上是在当前线程&#xff08;通常是主线程&#xff09;中执行…...

MySQL:概念、逻辑与物理结构设计详解

MySQL&#xff1a;概念、逻辑与物理结构设计详解 一、引言 MySQL是一个流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛应用于各种规模和类型的应用程序中。在设计和实现一个MySQL数据库时&#xff0c;理解其基本概念、逻辑结构设计和物理结构…...

《昇思 25 天学习打卡营第 6 天 | 函数式自动微分 》

《昇思 25 天学习打卡营第 6 天 | 函数式自动微分 》 活动地址&#xff1a;https://xihe.mindspore.cn/events/mindspore-training-camp 签名&#xff1a;Sam9029 函数式自动微分 自动微分是深度学习中的一个核心概念&#xff0c;它允许我们自动计算模型参数的梯度&#xff0c…...

刷题——二叉树的中序遍历

双指针法 void midorder(vector<int>&res, TreeNode* root){if(root NULL) return;midorder(res, root->left);res.push_back(root->val);midorder(res, root->right);}vector<int> inorderTraversal(TreeNode* root) {// write code herevector<…...

圈复杂度.

圈复杂度是衡量代码的重要标准 配置&#xff1a; eslint里面&#xff1a;rules&#xff1a;complexity&#xff1a;[error,10]...

分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测

分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测 目录 分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测&#xff0c;…...

说说 golang 中的接口和反射

1、接口 1.1 类型 Golang 中的接口是一组方法的签名&#xff0c;是实现多态和反射的基础。 type 接口名 interface {method1(参数列表) 返回值列表method2(参数列表) 返回值列表 }不同于 Java 语言&#xff0c;使用 implements 关键字显示的实现接口。Golang 接口的实现都是…...

小程序注册

【 一 】小程序注册 微信公众平台 https://mp.weixin.qq.com/ https://mp.weixin.qq.com/注册 邮箱激活 小程序账户注册 微信小程序配置 微信小程序开发流程 添加项目成员 【 二 】云服务 lass 基础设施服务&#xff08;组装机&#xff09; 你买了一大堆的电脑配件&#x…...

工作记录2

1. 要实现y轴超出部分滚动的效果&#xff0c;可以这样写 <div style"max-height: 384px; overflow-y: auto;"> </div> 2. 当后端接口还没好的时候&#xff0c;可以自己模拟一下接口返回的数据 export const getCommodityDetail (id) > Promise.re…...

linux挂载硬盘(解决linux不显示硬盘问题)

目录 1.查看系统有几块硬盘2.查看挂载情况3.格式化硬盘4.创建挂载目录用于挂载硬盘5.将硬盘挂载到指定的挂载目录6.随系统自启动挂载查看配置文件&#xff0c;看是否已经把这条命令加入配置 帮同门解决挂载失败问题记录 参考视频&#xff1a;只要6步&#xff01;Linux系统下挂载…...

运输标签扫描仪可简化运输和接收任务

Dynamic Web TWAIN 是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码&#xff0c;就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存为多种格式&#xff0c;用户可保存图像到远程数据库或者Share…...