正规表示法:
好了!大概知道一些基本的指令了,那么接下来呢?嗯!谈一谈如何撷取资料部分内容吧!假设你今天需要将这个月份曾经登入过主机的使用者调出来,要执行什么指令呢?没错!就是 last 这个指令!但是会不会觉得使用 last 时,如果你的登入者太乱了,这样的话很不容易发现到底我们要调查的那一个使用者在何时出现过?假设我们需要将 root 的资料调出来,那么应该如何作呢?呵呵呵呵!使用 grep 吧!他可以使用比对的方式来将 last 一行一行资料分析,发现该行有 root 这个字时,就会立刻将该行调出来!嗯!相当棒的一个指令!而这个就涉及到『正规表示法』的内容了!
正规表示法 ( 也有称为常规表示法的,无论如何,就是 Regular Express 的翻译啦! ) 使用的地方相当的广泛,我们提一个常常用到的例子来做说明好了!假如我们在自己的目录下有相当多的档案,而我要找一个档案,他的内容含有一个字串,叫做是『VBird talk』,那么要如何来找出这个档案呢?很简单啦!就直接将每个档案的内容捉出来,然后逐一加以比对,如果在比对的过程中发现了 VBird talk 这个字串,那么就将该行输出到萤幕上,那么您自然也就可以知道他是在那个档案里面啰!搜寻上面很是简单!而要提到正规表示法就不能不提到 grep 这个指令,底下我们先来谈一谈 grep 这个指令的用法吧!
· grep
语法:
[root @test /root ]# grep "word" filename 参数说明: 范例: [root @test /root]# grep root /var/log/secure <==将 /var/log/secure 这个档案中有 root 的那一行秀出来 [root @test /root]# grep "*[a-d]*" /var/log/secure<==将每一行中有a-d 的就予以输出
说明:
在上面的第一个例子中,我们知道系统的登入资讯档都记录在 /var/log/secure 这个登录档中,那么如何将这个档案里面关于 root 的资料取出来呢?!就使用 grep 就对啦!很简单吧!但他是很有用的资讯呦!
例题:我想要知道 /var/log/messages 这个档案里面,所有跟 kernel 有关的文字! 答: 想要知道的是 kernel ,找这个关键字即可,所以直接: grep kernel /var/log/messages
例题:我想要知道某个档案里面含有 boot 的字眼,而这个档案在 /etc/ 底下,我要如何找出这个档案? 答: 既然知道有这个字眼那就好办了!可以直接下达: grep boot /etc/*
例题:我想要找出在 /etc 底下,档案内容含有 * 的档案名称? 答: 由于 * 是特殊字元,在变数的订定法则里面曾经提过要将特殊字元移除,需要使用跳脱字元,亦即是 \ 符号,所以我可以这样下达指令: grep \* /etc/*
此外,除了正规表示法之外,我们还可以藉由万用字元的搭配来进行字串的搜索与其他相关的使用。底下列出几个常见的咚咚让大家了解一下!
· 例题:我记得有个档案在 /etc/ 底下,而且他的内容中,有一行是以 boot 做为开头,我要如何查询这个档案呢? 答: 由于知道 boot 是在该行的第一个字元,所以我可以这样找出来: grep ^boot /etc/* 对照上面的表格后,您应该可以了解, ^ 表示『句首』的意思!
题:我想要知道,在 /etc 底下,只要含有 XYZ 三个字元的任何一个字元的那一行就列出来,要怎样进行? 答: 『只要』含有 X 或 Y 或 Z 就将该行列出来,因此,我们的范围很很广啦!这个时候就必需要使用到 [] 这个咚咚!还记得中括号的用途吗?那就是『在中括号里面谨代表一个字元而已!』而这个中括号是一个『代表』,可以是一串字也可以是几个不连续的字!这里我们仅需要 XYZ 其中任何一个,所以可以这样写: grep [XYZ] /etc/* 则只要在每一行当中,只要发现 X 或 Y 或 Z 任何一个,就会将他印出来!这个与 grep XYZ /etc/* 是『完全不一样』的!请仔细的思考一下ㄟ!
例题:我想要知道在 /etc 里面,只要句首是 w-z 的就将他印出来? 答: 同样的,使用中括号! grep ^[w-z] /etc/*
当然还有很多很多用法啦!毕竟一个正规表示法加上他附属的一些指令,几乎可以出一本书了,这里仅是想让大家了解他的好处罢了!所以就写到这里!其他的,就等着您去参详与发现啰!
· diff
语法:
[root @test /root ]# diff file1 file2 参数说明: 范例: [root @test /root]# diff index.htm index.html
说明:
这是用来比较两个档案内容是否有不一致的指令!
· awk
语法:
[root @test /root ]# last | awk '{print $1 " " $2}' 参数说明: 范例: [root @test /root]#
说明:
施工中
· sed
语法:
[root @test /root ]# last | sed 10,\$d 参数说明: 范例: [root @test /root]#
分享到:
相关推荐
Linux正则表达式.pdf 本文档主要介绍了 Linux 系统中的正则表达式的概念、历史、定义和应用。正则表达式是一种字符串匹配模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个...
绝对有用的LINUX正则表达式使用,包含awk,sed,cut,tr等使用技巧,希望大家喜欢!
用PPT写的linux 正则表达式,非常好的学习linux的资料
[Linux基础]_05_常用的文本过滤工具 Linux正则表达式 三种表达方式
根据老男孩老师视频教程《Linux正则表达式实战》的精彩讲解,进行了学习笔记记录,主要讲解Linux三剑客中的grep用法、捎带sed的讲解笔记。 学习笔记进行了规整,相信Linux运维工作者能够一目了然笔记的内容。 (1...
### Linux正则表达式技术指南 #### 正则表达式基础与应用场景 在Linux系统中,正则表达式(Regular Expression)是一种强大的文本处理工具,它可以帮助用户进行精确的字符串匹配、查找、替换等操作。正则表达式...
在IT领域,Linux系统Shell和正则表达式是两个至关重要的工具,它们在日常的系统管理、数据分析和脚本编写中发挥着巨大的作用。本文将深入探讨Linux Shell下的正则表达式,包括其基本概念、元字符、模式匹配以及常用...
### Linux正则表达式详解 在Linux环境下,正则表达式是一种非常强大的文本处理工具,广泛应用于各种场景,如文件搜索、数据匹配等。本文将详细介绍Linux正则表达式的使用方法及其背后的逻辑。 #### 正则表达式基础...
正则表达式(Regular Expression,简称regex)是用于在文本中匹配特定模式的强大工具,广泛应用于数据验证、搜索替换和文本处理等领域。正则表达式调试工具是开发人员用来测试和优化这些模式的重要辅助工具。本文将...
以下将详细介绍文件标题和描述中涉及的几个Linux正则表达式用法: 1. **查找IPv4地址**: 使用`ifconfig`命令获取网络接口配置,通过管道`|`传递给其他命令处理。`head -n 2 | tail -1`用于获取第一行非标题行,...
在Linux系统中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能用于匹配、查找、替换等操作,广泛应用于数据提取、文件搜索、脚本编程等多个领域。本合集主要围绕如何在Linux环境下利用正则表达式...
### Linux下的C语言正则表达式使用详解 #### 引言 正则表达式作为一种强大的文本处理工具,广泛应用于各种编程语言中。对于C语言来说,尽管标准库并不直接支持正则表达式的操作,但可以通过引入第三方库来实现这一...
* 正则表达式不仅用于程序开发,还广泛应用于 Unix/Linux 系统管理中 知识点二:正则表达式的基本概念 * 正则表达式是利用 26 个英文字符与一些特殊符号的配合来进行文字内容比对的方法 * 正则表达式中,26 个英文...
在Linux和Unix环境中,正则表达式常用于命令行工具,如grep、sed和awk等。在这些环境中,正则表达式广泛用于文本处理和自动化任务的脚本编写。 综上所述,正则表达式是文本处理中不可或缺的工具。通过理解正则...
其中包括windows和linux文件路径的正则表达式;去除空格和斜杠转换的replaceall方法
《最小的C++正则表达式库:高效与便携性的完美融合》 在软件开发领域,正则表达式作为一种强大的文本处理工具,被广泛应用于数据验证、文本搜索和替换等场景。对于C++程序员来说,找到一个轻量级、跨平台且功能强大...