【编程学习笔记】Linux 中几个正则表达式的用法!

如题所述

在Linux中,正则表达式是一种强大的工具,用于匹配特定模式的字符序列。以下是几个实用的正则表达式用法:

    从ifconfig命令的结果中提取本机的IPv4地址

      使用命令:ifconfig | head n 2 | tail 1 | tr s " " | cut d" " f3
        说明:此命令组合用于提取ifconfig输出中的本机IPv4地址,但通常这种方法不够准确,更可靠的方式是使用ifconfig | grep 'inet ' | grep v '127.0.0.1' | awk '{print $2}'。

    查找分区空间使用率的最大百分比

      使用命令:df | tr s " " | cut d" " f5
        说明:此命令组合用于提取df命令输出中的分区使用率百分比。

    获取用户UID最大值的用户名、UID和shell类型

      使用命令:cat /etc/passwd | cut d: f1,3,7 | sort nt k2 | tail n 1
        说明:此命令组合用于找到/etc/passwd文件中UID最大的用户,并显示其用户名、UID和shell。

    显示/tmp的权限

      使用命令:stat /tmp | head n 4 | tail n 1 | cut c1013
        说明:此命令组合用于提取/tmp目录的权限信息。

    列出CentOS8系统所有用户及其用户名和UID

      使用命令:cat /etc/passwd | cut d: f1,3 | egrep v "[09]{4,}"
        说明:此命令组合用于列出/etc/passwd文件中所有非系统用户的用户名和UID。

    获取root、linuxmi和mi用户的UID和默认shell

      使用命令:cat /etc/passwd | egrep "^" | cut d: f1,3,7
        说明:此命令组合用于提取指定用户的用户名、UID和shell。注意,原命令中”^“应修正为包含实际用户名。

    在/etc/rc.d/init.d/functions中查找符合条件的字符

      使用命令:egrep "[az]$" /etc/rc.d/init.d/functions
        说明:原命令中echo的使用是不正确的,应直接对文件使用egrep。此命令用于查找以小写字母结尾的行。

    提取函数文件的目录名

      注意:原命令有误,正确的方式可能是使用dirname命令或正则表达式匹配路径。
        示例:dirname /etc/rc.d/init.d/functions

    统计last命令中root登录的主机IP地址次数

      说明:此操作较复杂,通常需要使用awk、sort和uniq等命令组合,并可能需要特定的正则表达式来匹配IP地址。

    用扩展正则表达式匹配特定的IP范围

      使用命令:egrep E "[09]{1,3}.[09]{1,3}.[09]{1,3}.[09]{1,3}"
        注意:原命令中的<和>是不正确的,应使用E选项启用扩展正则表达式,并直接书写正则表达式。示例范围匹配:可以使用多个egrep命令或组合成一个复杂的正则表达式来匹配特定IP范围。

    从ifconfig命令中提取所有IPv4地址

      使用命令:ifconfig | egrep o "{3}[09]{1,3}"
        说明:此命令使用o选项仅输出匹配的部分,即IPv4地址。

正则表达式在Linux系统中非常强大且无处不在,掌握这些用法对于编程和系统管理至关重要。

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜