96SEO 2026-02-20 08:17 6
的一些进阶选项基础正规表示法练习例题一、搜寻特定字符串例题二、利用中括号

工具(重点)以行为单位的新增/删除功能以行为单位的取代与显示功能部分数据的搜寻并取代的功能直接修改文件内容(危险动作)同时执行多条sed命令sed脚本文件
或称为常规表示法)是透过一些特殊字符的排列用以『搜寻/取代/删除』一列或多列文字字符串
简单的说正规表示法就是用在字符串的处理上面的一项『表示式』。
正规表示法并不是一个工具程序而是一个字符串处理的标准依据如果您想要以正规表示法的方式处理字符串就得要使用支持正规表示法的工具程序才行
正规表示法对于系统管理员来说实在是很重要因为系统会产生很多的讯息这些讯息有的重要有的仅是告知
此时管理员可以透过正规表示法的功能来将重要讯息撷取出来并产生便于查阅的报表来简化管理流程。
此外
很多的软件包也都支持正规表示法的分析例如邮件服务器的过滤机制(过滤垃圾信件)就是很重要的一个例子。
所以您最好要了解正规表示法的相关技能在未来管理主机时才能够更精简处理您的日常事务
注本章节使用者需要多加练习因为目前很多的套件都是使用正规表示法来达成其『过滤、分析』的目的
接下来底下要开始介绍一个很重要的观念那就是所谓的『正规表示法(Regular
任何一个有经验的系统管理员都会告诉你『正规表示法真是挺重要的』
简单的说正规表示法就是处理字符串的方法他是以行为单位来进行字符串的处理行为
正规表示法透过一些特殊符号的辅助可以让使用者轻易的达到『搜寻/删除/取代』某特定字符串的处理程序
举个系统常见的例子好了假设妳发现系统在开机的时候老是会出现一个关于
而开机过程的相关程序都是在/lib/systemd/system/
如果了解正规表示法的相关技巧那么只要一行指令就找出来啦『grep
只要工具程序支持这种表示法那么该工具程序就可以用来作为正规表示法的字符串处理之用。
所以这些工具就可以使用正规表示法的特殊字符来进行字符串的处理。
但例如
那么为何我需要学习正规表示法呢对于一般使用者来说由于使用到正规表示法的机会可能不怎么多
因此感受不到他的魅力不过对于身为系统管理员的你来说正规表示法则是一个『不可不学的好东西』
怎么说呢由于系统如果在繁忙的情况之下每天产生的讯息信息会多到你无法想象的地步
的内容记载了系统产生的所有讯息当然这包含你的系统是否被『入侵』的记录数据。
正规表示法除了可以让系统管理员管理主机更为便利之外事实上由于正规表示法强大的字符串处理能力
说实在的我们在学数学的时候一个很重要、但是粉难的东西是一定要『背』的
这个九九表我们在小学的时候几乎背了一整年才背下来并不是这么好背的呢
唔正规表示法还有分喔没错喔正规表示法的字符串表示方式依照不同的严谨度而分为
基础正规表示法与延伸正规表示法。
延伸型正规表示法除了简单的一组字符串处理之外还可以作群组的字符串处理
就能够达到这样的目的不过我们在这里主力仅是介绍最基础的基础正规表示法而已啦好啦清清脑门咱们用功去啰
有一点要向大家报告的那就是『正规表示法与通配符是完全不一样的东西』
既然正规表示法是处理字符串的一种表示方式那么对字符排序有影响的语系数据就会对正规表示法的结果有影响
此外正规表示法也需要支持工具程序来辅助才行所以我们这里就先介绍一个最简单的字符串撷取功能的工具程序那就是
为什么语系的数据会影响到正规表示法的输出结果呢我们知道文件其实记录的仅有
1看到的字符文字与数字都是透过编码表转换来的。
由于不同语系的编码数据并不相同所以就会造成数据撷取结果的差异了。
Z上面的顺序是编码的顺序我们可以很清楚的发现这两种语系明显就是不一样如果你想要撷取大写字符而使用
另外为了要避免这样编码所造成的英文与数字的撷取问题因此有些特殊的符号我们得要了解一下的
组描述[[:alpha:]]匹配任意字母字符不管大小写,[a-z],[A-Z][[:alnum:]]匹配任意字母字符和数字[0-9],[a-z],[A-Z][[:upper:]]匹配大写字母[A-Z][[:lower:]]匹配小写字母[a-z][[:digit:]]匹配数字,[0-9][[:blank:]]匹配空格或值表符[[:cntrl:]]代表键盘上面的控制按键亦即包括
外的其他所有按键[[:print:]]匹配任意可打印字符[[:punct:]]匹配标点符号[[:space:]]匹配任意空白字符空格制表NLFFVTCR[[:xdigit:]]代表
的相关信息可发现如上信息。
#范例二承上题要将捉到的关键词显色且加上行号来表示
会有特殊颜色来表示之外最前面还有行号喔其实颜色显示已经是默认在
当中了#范例三承上题在关键词所在行的前两行与后三行也一起捉出来显示
你会发现关键词之前与之后的数行也被显示出来这样可以让你将关键词前后数据捉出来进行分析啦grep
是一个很常见也很常用的指令他最重要的功能就是进行字符串数据的比对然后将符合用户需求的字符串打印出来。
行其中有两行具有你所搜寻的字符串则将那两行显示在屏幕上其他的就丢弃了
要了解正规表示法最简单的方法就是由实际练习去感受啦所以在汇整正规表示法特殊符号前
我们先以底下这个文件的内容来进行正规表示法的理解吧先说明一下底下的练习大前提是
所以上面的例子说明了我需要的字符串是『tast』或『test』两个字符串而已
only.也就是说当我们在一组集合字符中如果该字符组是连续的例如大写英文/小写英文/数字等等就可以使用[a-z],[A-Z],[0-9]等方式来书写那么如果我们的要求字符串是数字与英文呢
呵呵就将他全部写在一起变成[a-zA-Z0-9]。
例如我们要取得有数字的那一行就这样
1.但由于考虑到语系对于编码顺序的影响因此除了连续编码使用减号『
regular_express.txt啥上头在写啥东西呢不要害怕分开来瞧一瞧。
我们知道
啰鸟哥第一次接触正规表示法的时候看到两层中括号差点昏倒完全看不懂现在请注意那个迭代的意义
...你可以发现我们可以捉到第一个字符都不是大写的上面的指令也可以用如下的方式来取代的
...特别注意到因为小数点具有其他意义(底下会介绍)所以必须要使用跳脱字符()来加以解除其特殊意义
的意义吗好了先不要看底下的解答自己想一想那么如果我想要找出来哪一行是『空白行』
(^$)所以这样就可以找出空白行啦再来假设你已经知道在一个程序脚本
/etc/rsyslog.conf是否节省很多版面啊另外你可能也会问那为何不要出现
的符号的那行就直接舍弃呢没办法因为某些批注是与设定写在同一行的后面
』则代表『绝对有一个任意字符』的意思这两个符号在正规表示法的意义如下
再出一题如果我想要找出『任意数字』的行列呢因为仅有数字所以就成为
那如果我想要限制一个范围区间内的重复字符数呢举例来说我想要找出两个到五个
字符意义与范例^word意义待搜寻的字符串(word)在行首范例搜寻行首为
regular_express.txtword$意义待搜寻的字符串(word)在行尾范例将行尾为
regular_express.txt.意义代表『一定有一个任意字符』的字符范例搜寻的字符串可以是
regular_express.txt\意义跳脱字符将特殊符号的特殊意义去除范例搜寻含有单引号
regular_express.txt*意义重复零个到无穷多个的前一个
regular_express.txt[list]意义字符集合的
regular_express.txt[n1-n2]意义字符集合的
字符里面列出想要撷取的字符范围范例搜寻含有任意数字的那一行需特别留意在字符集合
是有特殊意义的他代表两个字符之间的所有连续字符但这个连续与否与
regular_express.txt[^list]意义字符集合的
再次强调『正规表示法的特殊字符』与一般在指令列输入指令的『通配符』并不相同
在了解了一些正规表示法的基础应用之后再来呢呵呵两个东西可以玩一玩的那就是
分析登录文件的小程序绝大部分分析关键词的取用、统计等等就是用这两个宝贝蛋来帮我完成的那么你说要不要玩一玩啊^_^
还可以将数据进行取代、删除、新增、撷取特定行等等的功能呢很不错吧
的动作支持的是延伸型正规表示法的语法。
(预设是基础正规表示法语法)
不见得会存在一般代表『选择进行动作的行数』举例来说如果我的动作是需要在
的后面可以接字符串而这些字符串会在新的一行出现(目前的下一行)
的后面可以接字符串而这些字符串会在新的一行出现(目前的上一行)
光是用看的是看不懂的啦所以又要来练习了先来玩玩删除与新增的功能吧
root:x:0:0:root:/root:/bin/bash6
sync:x:5:0:sync:/sbin:/bin/sync7
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
root:x:0:0:root:/root:/bin/bash2
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
后面加上的字符串就已将出现在第二行后面啰那如果是要在第二行前呢『
root:x:0:0:root:/root:/bin/bash2
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
.....(后面省略).....这个范例的重点是『我们可以新增不只一行喔可以新增好几行』但是每一行之间都必须要以反斜杠『
』来进行新行的增加喔所以上面的例子中我们可以发现在第一行的最后面就有
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
.....(后面省略).....透过这个方法我们就能够将数据整行取代了非常容易吧sed
则可以简单的直接取出你想要的那几行是透过行号来捉的喔看看底下的范例先
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin6
sync:x:5:0:sync:/sbin:/bin/sync7
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown上述的指令中有个重要的选项『
s/要被取代的字符串/新的字符串/g上表中特殊字体的部分(s///g)为关键词请记下来至于三个斜线分成两栏就是新旧字符串的替换啦
数据的范例一段一段的来处理给您瞧瞧让你了解一下什么是咱们所谓的搜寻并取代吧
flags4163UP,BROADCAST,RUNNING,MULTICAST
仔细与上个步骤比较一下前面的部分不见了接下来则是删除后续的部分亦即
192.168.1.100透过这个范例的练习也建议您依据此一步骤来研究你的指令就是先观察然后再一层一层的试做如果有做不对的地方就先予以修改改完之后测试成功后再往下继续测试。
以鸟哥上面的介绍中那一大串指令就做了四个步骤对吧^_^
在内的批注我不想要而且空白行我也不要此时该如何处理呢可以透过这几个步骤来实作看看
从上面可以看出来原本批注的数据都变成空白行啦所以接下来要删除掉空白行删除空白行
不过由于这个动作会直接修改到原始的文件所以请你千万不要随便拿系统配置文件来测试喔
』选项可以直接修改文件内容这功能非常有帮助举例来说如果你有一个
ROOT:x:0:0:ROOT:/ROOT:/BIN/bash
BIN:x:1:1:BIN:/BIN:/sBIN/nologin
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback