当前位置: 首页>编程语言>正文

grep命令匹配手机号 grep 匹配空格

1、显示/etc/passwd文件中以bash为结尾的行;

grep 'bash$' /etc/passwd
grep '.*bash' /etc/passwd
cat /etc/passwd  |  grep 'bash$'

字符

描述

^

匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。

$

匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。

\b

匹配一个单词边界,即字与空格间的位置。

\B

非单词边界匹配。

2、找出/etc/passwd文件中的三位或四位数

{n,m} 用于限制匹配次数

扩展正则中:+表示匹配一次到无穷次、?表示匹配0次或一次(最大匹配一次) *表示匹配0次到无穷次

grep -E '\b[0-9]{3,4}\b' /etc/passwd
grep -E '\b.*[0-9]{3,4}.*\b' /etc/passwd
egrep -E '\b.*[0-9]{3,4}.*\b' /etc/passwd

3、找出/etc/grub2.cfg文件中,以至少一个空白字符开头,后面又跟了非空白字符的行

\s匹配任何空白字符 \S匹配任何非空白字符 [[:space:]]–表示空白字符

egrep '^\s+\S' /etc/grub2.cfg 
egrep '^[[:space:]].*' /etc/grub2.cfg

4、找出“netstat -tan”命令中,以’LISTEN‘后跟0或多个空白字符结尾的行;

‘LISTEN[[:space:]]*$’ 与 'LISTEN[[:space:]]*.$'的区别

前者是匹配0次到无穷次的空白字符,后者是匹配一次空白字符后后面可以跟任意字符

netstat -tan | egrep 'LISTEN\s*$'
netstat -tan | egrep 'LISTEN[[:space:]]*$'

5、找出“fdisk -l”命令的结果中,包含以/dev/后跟sd或hd及一个字母的行;

[a-zA-Z]表示一个zimu (sd|hd)表示sd或hd

fdisk -l | egrep '/dev/(sd|hd)[a-zA-Z]'
fdisk -l | egrep '/dev/[sh]d[a-zA-Z]'
fdisk -l | egrep '/dev/(s|h)d[a-zA-Z]'

6、找出“ldd /usr/bin/cat”命令的结果中文件路径

对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左到右出现的顺序存储。缓冲区编号从 1 开始,最多可存储 99 个捕获的子表达式。每个缓冲区都可以使用 \n 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数

ldd /usr/bin/cat | egrep '(/).*'

7、找出/proc/meminfo文件中,所有以大写或小写s开头的行;至少用三种方式获得

grep -E  '^(s|S)' /proc/meminfo 
grep -E  '^[sS]' /proc/meminfo 
grep -E -i '^s' /proc/meminfo

8、显示当前系统上root、centos或spark用户的相关信息

egrep '^(root|centos|spark)'  /etc/passwd
root:x:0:0:root:/root:/bin/bash

9、echo输出一个绝对路径,使用egrep取出其基名

echo /root/test/a.txt  | egrep '[^/]+$'

grep命令匹配手机号 grep 匹配空格,grep命令匹配手机号 grep 匹配空格_开发语言,第1张

10、找出ifconfig命令结果中的1-255之间的整数

ifconfig  | egrep '\b([1-9]|[1-9][0-9]|[1][0-9]{1,2}|[2][0-4][0-9]|[2][5][0-5])\b'

11、找出系统中其用户名与shell名相同的用户

grep '^\(.*\):\b.*$' /etc/passwd

12、匹配多个 重复单词

Is is the cost of of of gasoline up up up up up

cat q12 | egrep '(\b[a-zA-Z]+\b)+.*'
file.txt文件内容:

48   Dec    3BC1977    LPSX    68.00   LVX2A   138

483 Sept   5AP1996     USP    65.00   LVX2C   189

47    Oct      3ZL1998    LPSX   43.00   KVM9D 512

219  dec      2CC1999  CAD     23.00   PLV2C    68

484  nov      7PL1996   CAD    49.00     PLV2C  234

483   may     5PA1998  USP     37.00    KVM9D  644

216   sept      3ZL1998  USP     86.00    KVM9E   234

1含有“48”字符串的行的总数

[root@localhost ~]# grep -c '48' q123

2显示含有“48”字符串的所有行的行号

[root@localhost ~]# grep -n  '48' q123

3精确匹配只含有“48字符串的行

[root@localhost ~]# egrep -n  '\b48\b' q123

4抽取代码为484和483的城市位置

[root@localhost ~]# egrep -n  '\b48[34]' q123

5显示使行首不是4或8

[root@localhost ~]# egrep   '^[^48]' q123

6显示含有九月份(Sept)的行

[root@localhost ~]# egrep  -i  'Sept' q123

7显示以K开头,以D结尾的所有代码

[root@localhost ~]# egrep    'K.*D' q123

8显示头两个是大写字母,中间两个任意,并以c结尾的代码

[root@localhost ~]# egrep    '[A-Z]{2}\S{2}[cC]' q123

9查询所有以5开始以1996或1998结尾的所有记录

[root@localhost ~]# egrep    '5.*(1996|1998)' q123

\W 匹配字母和数字


https://www.xamrdz.com/lan/5my1920563.html

相关文章: