第二周作业

正则表达式

grep搜索符合条件的行

man grep

print lines matching a pattern

grep abc需要标准输入,经常用于管道符的右侧

grep -v不包含pattern的选项

grep -i忽略大小写

grep -n加上匹配模式(pattern)行号

cat -n /etc/passwd |grep root

ls |grep ks

grep -c统计有几行匹配模式只显示行数

grep -oi只显示匹配模式(pattern)本身,忽略大小写

grep -q 是否有匹配模式都不显示,可以在$?中显示

echo $? 会显示匹配

grep -q “root” /etc/psswd =grep “root” /etc/passwd &> /dev/null

grep -nA3 root /etc/passwd显示字符串的后3行

grep -nb3 root                                       前3行

-nC3                                               前后3行

grep -e root -e bash /etc/passwd 包括root 或者 bash

grep root /etc/passwd |grep bash包括root 和 bash

echo “x2abc3y”|grep -w abc  加-w后字符默认为一个单词

“x2_abc_3y”

“x2-abc-3y”

只识别了“x2-abc-3y”

 

grep -f file

cat p.txt

root

bash

^c

grep -f p.txt /etc/passwd

可以看到出现了包含root  bash 字符段的行

 

 

Prce(perl Compatible Regular Expressions)

元字符分类:字符匹配 匹配次数 位置锚定 分组

.代表一个字符的任意字符

\.代表.本身  转义

[]取中括号中的任意一个字符

[^]取除了括号中的任意一个字符

.

.

.

正则表达式

匹配次数

*某一个字符的出现次数

echo axb | grep x*      *前面的字符出现的次数是不确定的

.*  代表以前通配符中的*  任意长度的任意字符串

\?前面一个字符出现了1次或0次

\+前面一个字符出现1次及以上

\{18\}确定18次

\{18,\}18次及以上

\{18,20\}18到20 次

\{,20\}20次以内

[a-z]\+小写字母至少出现一次

.放在[]中[.]代表任意字符 和通配符一样

 

将本机IP地址提取出来Centos7

ifconfig ens33 |grep -o “[0-9.]\{7,\}” |head -n1

 

ifconfig ens33 |grep -o “[[:digit:]]\{1,3\}\.””[[:digit:]]\{1,3\}\.””[[:digit:]]\{1,3\}\.””[[:digit:]]\{1,3\}” |head -n1

 

ifconfig ens33 |grep -o “[0-9.]\+” |cut -d” ” -f2

 

df |grep “dev/sd” |grep -o “[[:digit:]]\{1,3\}”%

 

 

正则表达式

位置锚定:定位出现的位置

^表示行首

^root 以root 开头

$表示行尾

bash$以bash结尾

空行”^$”表示空行

“^[[:space:]]*$”表示空行及TAB及空格行

\<root 代表单词root 前面没有字母,可能有冒号

root\>代表单词root 作为单词词尾

\<root\>和 -w  root一样

\b也可以表示\<或者\>

 

 

正则表达式

分组

\(wang)\

echo wangwangwang |grep “\(wang\)\{3\}”

后项引用

“\(wang\)\{3\}.*\(wang\)\{3\}”z相当于\(wang\)\{3\}.*\1表达第一个括号中的结果的重复

\2

\3

以左括号(出现的顺序来定

\数字匹配的是第一个括号中表示的结果重复

echo rootxxrbbt |grep ‘\(r..t\).*\1’表示没有结果

echo rootxxroot |grep ‘\(r..t\).*\1’表示正确结果

 

grep “^\(a\|b\).*” /etc/passwd以a或b 开头

grep “a\|bxy”表示a或bxy开头

grep “\(a\|b\)xy”表示axy 或bxy开头

 

 

 

 

 

 

 

1、显示/proc/meminfo文件中以大小s开头的行(要求:使用两种方法)

grep ^[s\|S] /proc/meminfo

grep  -i s /proc/meminfo

2、显示/etc/passwd文件中不以/bin/bash结尾的行

grep -v “/bin/bash$” /etc/passwd

3、显示用户rpc默认的shell程序

cat /etc/passwd |grep “^rpc\b” |cut -d: -f7

4、找出/etc/passwd中的两位或三位数

grep -o “[0-9]\{2,3\}” /etc/passwd

5、显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面有非空白字符的行

grep “^[[:space:]]\+.*[^[:space:]]$” /etc/grub2.cfg

6、找出“netstat -tan”命令结果中以LISTEN后跟任意多个空白字符结尾的行

netstat -tan |egrep “LISTEN[[:space:]]*$”

7、显示CentOS7上所有系统用户的用户名和UID

8、添加用户bash、testbash、basher、sh、nologin(其shell为/sbin/nologin),找出/etc/passwd用户名和shell同名的行

cat /etc/passwd |grep “^\(.\+\>\):.*\<\1$”

9、利用df和grep,取出磁盘各分区利用率,并从大到小排序

df |grep “/dev/sda”|grep -o “[0-9]\{1,2\}%”|sort -nr

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95515

(0)
王应杰王应杰
上一篇 2018-04-08 20:17
下一篇 2018-04-08 20:22

相关推荐

  • lamp

    1.phpmyadmin 需要phpadmin包组和yum安装lamp 创建phpadmin配置文件 安装字符集包组 开启mysql服务 创建测试账号 编写测试phpmysql 最后开启httpd服务 测试成功 进行phpmyadmin 设置数据库账号 密码 登陆成功 测试成功 2.搭建wordpress 在phpmyadmin实验上进行 在phpmyadm…

    Linux笔记 2018-06-25
  • Linux系统上的命令使用格式与12个常用命令介绍

    Linux系统上的命令使用格式 本文默认使用Linux7,如有命令属于Linux6我会注明。 命令的语法通用格式: /]# COMMAND OPTIONS ARGUMENTS 命令示例:/]#ls -l /etc/ssh COMMAND(命令):ls 命令分为两类: 内部命令(builtin):由shell程序的自带的命令,这类命令没有对应的可执行文件。 外…

    2018-08-04
  • Linux安全和加解密(三)

    本文主要介绍:1、ssh服务 2、基于SSH的客户端相关工具 3、SSH端口转发 4、dropbear编译安装 5、AIDE 6、sudo

    2018-05-30
  • shell笔记

    在学习的时候整理的零散笔记

    Linux笔记 2018-04-14
  • 网络管理 tcp/udp详解 (传输层)

    简介: TCP和UDP的区别 TCP是面向连接的传输控制协议,而UDP提供了无连接的数据报服务。 TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作; UDP具有较好的实时性,工作效率较TCP协议高; …

    2018-05-01
  • rpm命令使用

    rpm命令 rpm [options] PACKAGE_FILE … 常用选项 -i –install 安装 -U –update 升级 -e –erase 卸载 -q –query 查询 -V verify 校验 –rebuilddb –initdb 构建数据库 ` 程序安装 rpm {-i|–install} [install-opti…

    Linux笔记 2018-06-10