
正文
linux正则表达式命令 linux 正则表达式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Linux正则表达式与通配符
正则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。
只有掌握了正则表达式,才能全面地掌握 Linux 下的常用文本工具(例如:grep、egrep、GUN sed、 Awk 等) 的用法
grep、sed、awk天然支持正则
grep -v代表反选,反向选择匹配到的内容
grep -E代表使用扩展正则
grep -P代表使用Perl正则
sed -r 代表使用扩展正则
正则表达式分为三类(man grep可以看到,分别是basic RegExs,extended RegExs,perl RegExs)
1、基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)
2、扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)
3、Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)
b. 处理过程:查找文本文件中是否包含要查找的 “关键字”(关键字可以是正则表达式) ,默认返回匹配的该行的内容
c. grep|egrep处理文件时,按行处理 |
| sed | sed | sed -r | - | a. 处理对象:文本文件
b.处理操作:对文本文件的内容进行 查找、替换、删除、增加等操作
c. sed 在处理文本文件的时候,按行处理 |
| awk | - | awk | - | a. awk 处理的对象:文本文件
b. awk 处理操作:主要是对列进行操作 |
注意:egrep 或 sed -r 默认使用扩展正则表达式(EREs),一般特殊字符({})可以不转义
grep -E 以及egrep(Extend Regular Expression)
Linux通配符和三剑客的正则表达式是不一样的,因此,代表的意义也有较大的区别 。
通配符一般用户命令行bash环境,而linux正则表达式用于grep, sed, awk场景。
通配符说明
示例:* 的使用:代表任意0-N个字符,代表所有字符
相关问答
Q1: Linux如何使用正则表达式命令?文本文件操作命令
Linux对文本操作命令及正则表达式:
cat
cat 是 concatenate 的缩写,所以它的作用其实是连接文件。但默认情况下它会将连接文件的结果送到标准输出。所以我们常用来显示文件内容。类似于 dos 中的 type。
more
当一个文件的内容超过一屏后,我们可以用 more 这个指令来逐屏 察看 文件内容。
less
less 在 more 的基础上,更可以逐行 察看 ,前后翻页。
head
head 显示文件开头部分内容,默认显示前十行参数 --lines 或者 –n 指明显示行数基本格式:
tail
tail 显示文件结尾部分内容,命令用法同 head,参数 -f 显示文件的纪实更新,用于监视日志文件
tail 默认显示文件列表中每个文件的后 10 行,如果没有文件名或文件名为“-”则其从标准输入中读取文件,如果有多个文件则其会在文件前面加上“==文件名==”以便区别。
# tail /etc/mail/sendmail.mc 默认查看文件的后 10 行内容
# tail –n 20 /etc/passwd 查看文件后 20 行内容
注意: # tail –f /var/log/message 实时监控日志文件更新信息,非常重要
diff
diff 用于比较两个文件之间的区别,并送到标准输出。输出时先报告两个文件的哪一行不同。基本格式:
参数:
uniq 用于去除文本中相邻的重复行。
-u 参数可以只显示那些没有被重复过的行。 -d 显示有被重复过的行。
cut
cut 可以根据一个指定的标记(默认是 tab)来为文本划分列,然后将此列显示。使用权限:所有使用者
基本格式: cut -cnum1 -num2 filename
说明:显示每行从开头算起 num1 到 num2 的文字。
[root@uplooking root] $ cut –f1 –d: /etc/shadow 表示以 : 为分隔符,显示 /etc/shadow 的第一列 sort
sort 用来按各种需要重新排列文本,一般运用在一个管道之后。例如:
默认情况下 sort 按照字母顺序排列文本。
wc
wc 用来统计一个文件的行数、词数、字数并送到标准输出。也可以用-l(行数)、-w(词数)、-c(字数)来指定输出内容。
Q2: Linux正则表达式教程:Grep Regex示例
正则表达式是特殊字符,可帮助搜索数据,匹配复杂模式。正则表达式缩写为“regexp”或“regex”。
为了便于理解,让我们逐一学习不同类型的正则表达式。
[TOC]
一些常用的正则表达式命令是tr,sed,vi和grep。下面列出了一些基本的正则表达式。
我们来看一个例子吧。
执行cat示例以查看现有文件的内容
搜索包含字母'a'的内容。
' ^ '匹配字符串的开头。让我们搜索一下STARTS的内容
仅过滤以字符开头的行。将忽略开头不包含字符“a”的行。
让我们看看另一个例子 -
仅选择那些以 $ 结尾的行
这些表达式告诉我们字符串中字符的出现次数。他们是
例:
过滤掉包含字符'p'的所有行
我们想要检查字符'p'是否在字符串中依次出现2次。为此,语法将是:
注意:您需要使用这些正则表达式添加-E。
这些正则表达式包含多个表达式的组合。他们之中有一些是:
例:
搜索所有字符't'
假设我们要过滤字符'a'在字符't'之前的行
我们可以使用命令
大括号扩展的语法是花括号“{}”内的序列或逗号分隔的项目列表。序列中的起始和结束项由两个句点“..”分隔。
一些例子:
在上面的示例中,echo命令使用大括号扩展创建字符串。
关于linux正则表达式命令和linux 正则表达式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





