返回顶部
首页 > 资讯 > 操作系统 >linux中正则表达式有什么用
  • 604
分享到

linux中正则表达式有什么用

2023-06-16 02:06:54 604人浏览 独家记忆
摘要

小编给大家分享一下linux中正则表达式有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、辅助信息1.1、文件格式在Linux上工作,是非常非常排斥二进制

小编给大家分享一下linux正则表达式有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1、辅助信息

1.1、文件格式

在Linux上工作,是非常非常排斥二进制这种格式的,几乎什么都是可以读写的文本内容。大多数命令生成的结果,也都是文本文件。这些文件有一些特点,通常列与列都是通过空格或者键分隔的。比如下面lsmem的结果,这种有规律的,有章可循的文件,是非常容易被处理的。

[root@localhost ~]# lsmem RANGE                                  SIZE  STATE REMOVABLE BLOCK 0x0000000000000000-0x0000000007ffffff  128M online        no     0 0x0000000008000000-0x000000000fffffff  128M online       yes     1 0x0000000010000000-0x0000000017ffffff  128M online        no     2 0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4 0x0000000028000000-0x000000004fffffff  640M online        no   5-9 0x0000000050000000-0x000000005fffffff  256M online       yes 10-11 0x0000000060000000-0x000000007fffffff  512M online        no 12-15  Memory block size:       128M Total online memory:       2G Total offline memory:      0B

有一大批针对于行操作的命令,同样有一批针对于列操作的命令。然后,有两个集大成者,叫做sed、awk。由于这两个命令的内容非常多,我们将其列为单独的章节。

1.2、帮助信息

通常linux命令都十分简单,但是有些还是有些复杂度的。比如find,ps这种命令,如果要照顾到所有的场合,可能需要非常巨大的篇幅。但是,万一用到这种偏门的场合怎么办?

全面了解一下是非常有必要的,以便在使用的时候能够唤起记忆中最浅显的印象。然后剩下的,就可以交给类似于man的这种命令了。Linux上的每一个命令,都会有配套的帮助文件,这远比网络上那些转来转去的信息,正确的多。

正式介绍一下下面的两个命令:

  • man 用来显示某个命令的文档信息。比如:man ls

  • info 你可以认为和man是一样的,虽然有一些能够互补的内容。它们会在内容中进行提示的

  • --help  很多命令通过参数--help提供非常简短的帮助信息。这通常是最有用最快捷的用例展示。如果你根本就记不住一个非常拗口的单词,那就找找这些地方吧

注意:这些帮助信息,仅集中在命令的作用域本身。对于它的组合使用场景,并没有过多信息。也就是说,它教会了你怎么用,但并没有告诉你用它能够来做什么。

这些帮助命令,一般会通过高亮关键字,增加阅读的体验。但我们可以更近一步,把帮助文件变成彩色的。在root用户下,执行下面的命令。然后,重新登录虚拟机

cat >> ~/.bashrc <<EOF function man() {     env \\     LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\     LESS_TERMCAP_md=\$(printf "\e[1;31m") \\     LESS_TERMCAP_me=\$(printf "\e[0m") \\     LESS_TERMCAP_se=\$(printf "\e[0m") \\     LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\     LESS_TERMCAP_ue=\$(printf "\e[0m") \\     LESS_TERMCAP_us=\$(printf "\e[1;32m") \\     man "\$@"} EOF

再次执行man命令,就可以看到彩色的信息了。

linux中正则表达式有什么用

1.3、TAB补全

现在,在终端里,输入ca,然后快速按2次键盘,命令行会进入补全模式,显示以ca打头的所有命令。

[root@localhost ~]# ca cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

如果你对某个命令,只有模糊的印象,只记得前面的几个字母,这个功能是极好的,命令范围会一步步缩减。

2、正则表达式

为了开始下面的内容,我们首先介绍一下正则表达式。在前面的一些命令中,也可以使用这些正则表达式,比如less、grep等。

有些书籍,能够把正则表达式写成一本书,我们这里仅作简单的介绍,但足够用了。一般的,正则表达式能用在匹配上,还能够把匹配的内容拿来做二次利用。关于后者,我们在sed命令中介绍。




标志意义 
^行首 
$行尾 
.任意单个字符 
*匹配0个或者多个前面的字符 
+1个或者多个匹配 
?0个或者1个匹配 
{m}前面的匹配重复m次 
{m,n}前面的匹配重复m到n次 
[]匹配一个指定范围内的字符 
[^]匹配指定范围外的任意单个字符 
\转义字符 
[0-9]匹配括号中的任何一个字符,or的作用 
``or,或者
\b匹配一个单词。比如\blucky\b 只匹配单词lucky
 

使用下面的命令创建一个文件,我们练习一下grep命令加上E参数后的正则表现。

cat > 996 <<EOF 996: 996 is a funcking thing . which make woman as man , man as ass . we all on the bus , bus bus on the way . 996 way to icu. icuuuuuu...... The greedy green boss rides on the pity programmer EOF

在终端执行下面命令,注意高亮的部分即为匹配到的字符串

# 匹配996开头的行 [root@localhost ~]# cat 996 | grep -E ^996 996: 996 is a funcking thing . which make woman as man , man as ass .  # 匹配996结尾的行 [root@localhost ~]# cat 996 | grep -E 996$ we all on the bus , bus bus on the way . 996  # 匹配到icu和icuuuuuu [root@localhost ~]# cat 996 | grep -E icu+ way to icu. icuuuuuu......  # 再次匹配到996 [root@localhost ~]# cat 996 | grep -E [0-9] 996: 996 is a funcking thing . which make woman as man , man as ass . we all on the bus , bus bus on the way . 996  [root@localhost ~]# cat 996 | grep -E ^[\^0-9] we all on the bus , bus bus on the way . 996 way to icu. icuuuuuu...... The greedy green boss rides on the pity programmer  # 匹配所有不包含996的行,良心命令,泪奔 [root@localhost ~]# cat 996 | grep -E -v [0-9]{3} way to icu. icuuuuuu...... The greedy green boss rides on the pity programmer  # 匹配boss和icu [root@localhost ~]# cat 996 | grep -E boss\|icu way to icu. icuuuuuu...... The greedy green boss rides on the pity programmer  # 匹配所有行 [root@localhost ~]# cat 996 | grep -E . 996: 996 is a funcking thing . which make woman as man , man as ass . we all on the bus , bus bus on the way . 996 way to icu. icuuuuuu...... The greedy green boss rides on the pity programmer

正则表达式非常的重要,在一些sed脚本中,awk脚本中,甚至是vim编辑器中,都会简化你的操作。以上内容应该熟记,达到不需要查找文档的地步。

以上是“linux中正则表达式有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!

--结束END--

本文标题: linux中正则表达式有什么用

本文链接: https://lsjlt.com/news/282095.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linux中正则表达式有什么用
    小编给大家分享一下linux中正则表达式有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、辅助信息1.1、文件格式在Linux上工作,是非常非常排斥二进制...
    99+
    2023-06-16
  • linux中什么是正则表达式
    这篇文章主要为大家展示了“linux中什么是正则表达式”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中什么是正则表达式”这篇文章吧。什么是正则表达式正则表达式就是用一个“字符串”来描述...
    99+
    2023-06-15
  • ES6中正则表达式有什么用
    这篇文章主要为大家展示了“ES6中正则表达式有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ES6中正则表达式有什么用”这篇文章吧。一、构造函数实例化参数...
    99+
    2024-04-02
  • PHP正则表达式有什么用
    这篇文章主要介绍了PHP正则表达式有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP是编写动态WEB页面开发常用的脚本语言,而正则表达式是PHP中很重要的一个部分,...
    99+
    2023-06-17
  • js正则表达式和php正则表达式有什么区别
    本教程操作环境:Windows10系统、javascript1.8.5&&PHP7.1版、Dell G3电脑。js正则表达式和php正则表达式有什么区别总体上,PHP的正则比标准javascript的要强大。PHP有两套正则...
    99+
    2017-12-02
    JavaScript PHP
  • linux中正则表达式怎么用
    小编给大家分享一下linux中正则表达式怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!正则表达式就是处理字符串的方法,它以行为单位来进行字符串的处理行为,正...
    99+
    2023-06-13
  • Linux:正则表达式
    目录 一、grep和元字符         1.1、grep         1.2、元字符 二、正则匹配          2.1、查找特定的字符          2.2、使用[]来查找集合字符         要查找short和shi...
    99+
    2023-09-08
    正则表达式 java shell linux 服务器
  • PHP正则表达式有什么作用
    这篇文章给大家分享的是有关PHP正则表达式有什么作用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。PHP被大量的应用于Web的后台CGI开发,通常是在用户数据数据之后得出某种结果,但是如果用户输入的数据不正确,就...
    99+
    2023-06-17
  • Python中怎么使用正则表达式及正则表达式匹配规则是什么
    1 导库import re2 使用模板re_pattern = re.compile(pattern, flags=0) result = re.findall(re_pattern,string)3 说明参数描述pattern匹配的正则表...
    99+
    2023-05-14
    Python
  • linux正则表达式语法是什么
    Linux正则表达式的语法是基于POSIX标准的,可以用于在文本中进行模式匹配和搜索。以下是一些常用的正则表达式语法:1. 字符匹配...
    99+
    2023-08-12
    linux
  • linux中awk、正则表达式、正则运算符怎么用
    小编给大家分享一下linux中awk、正则表达式、正则运算符怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用awk作为文本处理工具,正则表达式是少不了的。...
    99+
    2023-06-13
  • php中正则表达式是什么
    这篇文章主要介绍php中正则表达式是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1:简单介绍正则表达式:正则表达式就是描述字符串排列模式的一种自定义语法规则如果可以使用字符串处理函数完成的任务,就不要使用正则表...
    99+
    2023-06-15
  • Linux中正则表达式如何使用
    这篇文章将为大家详细讲解有关Linux中正则表达式如何使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux之正则表达式  正则表达式与通配符的区别:最常应用正则表达式的命令是grep(e...
    99+
    2023-06-16
  • 在python正则表达式中是怎样正确使用正则表达式
    这篇文章将为大家详细讲解有关在python正则表达式中是怎样正确使用正则表达式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。现在我们已经看了一些简单的正则表达式,那么我们实际在 Python...
    99+
    2023-06-17
  • linux正则表达式的语法是什么
    Linux正则表达式的语法是基于POSIX标准的正则表达式(Regular Expression)语法。其语法主要包括以下部分:1....
    99+
    2023-09-07
    linux
  • js正则表达式和php正则表达式有哪些区别
    这篇文章主要介绍了js正则表达式和php正则表达式有哪些区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇js正则表达式和php正则表达式有哪些区别文章都会有所收获,下面我们一起来看看吧。区别:1、PHP正则表...
    99+
    2023-06-29
  • SQL正则表达式及mybatis中使用正则表达式的方法
    小编给大家分享一下SQL正则表达式及mybatis中使用正则表达式的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql...
    99+
    2024-04-02
  • Python中使用正则表达式及正则表达式匹配规则详解
    目录1 导库2 使用模板3 说明4 示例5 正则表达式匹配规则1 导库 import re 2 使用模板 re_pattern = re.compile(pattern, flags...
    99+
    2023-03-22
    Python正则表达式匹配规则 Python正则表达式
  • 什么是Perl正则表达式
    这篇文章将为大家详细讲解有关什么是Perl正则表达式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Perl正则表达式一、什么是Perl正则表达式一个Perl正则表达式,就是用某种模式去匹配一类字符串的一个...
    99+
    2023-06-17
  • 什么是VB.NET正则表达式
    这篇文章主要介绍了什么是VB.NET正则表达式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.什么是VB.NET正则表达式 基本说来,正则表达式是一种用来描述一定数量文本的...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作