脚本基本应用 grep sed和awk 您所在的位置:网站首页 12354大写 脚本基本应用 grep sed和awk

脚本基本应用 grep sed和awk

2023-09-19 10:13| 来源: 网络整理| 查看: 265

目录

一、正则表达式 grep

扩展正则表达式

sed和awk

3、sed的基本应用

4.awk的使用

 命令修改配置文件方法

一、正则表达式 grep

1、正则表达式的作用正则表达式的组成

1)正则表达式的作用

针对文件或者文本内容进行处理

帮助用户快速查找文本文件内容

2)正则表达式的组成

普通字符

大写A-Z

小写a-z

符号

元字符

2、正则表达式的常见选项和正则表达式常见的元字符

1)正则表达式grep常见的选项

-n:显示行号

-o:只显示匹配内容

-i:不区分大写或者小写字母

-v:取反

-E:支持扩展

-q:静默执行

-w: 识别为单词

-c: 统计匹配的行数

2)正则表达式的元字符

^:匹配行起始内容

$:匹配行结束内容

.:匹配任意单字符

.*:匹配任意字符

[]:匹配括号里边的内容

[-]:匹配括号里边内容的范围

{n}:匹配的范围的次数

[n1-n2]:匹配开始和结束内容

{ n,m }:重复前面的一个字符n到m次

{ n, }:重复前面的一个字符至少n次

[^]:匹配括号之外的任意字符

\:转义字符

\: 固定词尾

示例文件

[root@bogon ~]#  vim dd.sh

#!/bin/bash

qwe

qsdfe

qsdf

asdf

1234

12354

过滤关键字并显示行号

[root@bogon ~]# grep -n '1234' dd.sh

6:1234

查看行q开始字段

[root@bogon ~]# grep -n '^q' dd.sh

2:qwe

3:qsdfe

4:qsdf

匹配任意单个字符

[root@bogon ~]# grep -n 'q.e' dd.sh

2:qwe

[root@bogon ~]# grep -n 'q...e' dd.sh

3:qsdfe

匹配括号内容

[root@bogon ~]# grep -n 'q[w]e' dd.sh

2:qwe

[root@bogon ~]# grep -n 'qs[d]f' dd.sh

3:qsdfe

4:qsdf

只显示匹配内容

[root@bogon ~]# grep -o 'q' dd.sh

q

q

q

匹配开始是q结束是e的字段

[root@bogon ~]# grep -n 'q*e' dd.sh

2:qwe

3:qsdfe

[root@bogon ~]# grep -n "q*f" dd.sh

3:qsdfe

4:qsdf

5:asdf

过滤IP地址信息

[root@bogon ~]# cat q.txt 192 .168.1.139

192 .168.1.111

192 .168.1.121

[root@bogon ~]# grep -n -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" q.txt

1:192.168.1.139

2:192.168.1.111

3:192.168.1.121

扩展正则表达式

扩展正则表示常见的元字符

+:重复一次或者多次前面字符显示出来

?:显示当前字母前一个字符

|:或者,显示多个字符

():查找组字符串

()+:辨别多个重复组

将4前面内容显示出来

[root@bogon ~]# egrep -n '?4' dd.sh

6:1234

7:12354

将qwe或者asd显示出来

[root@bogon ~]# egrep -n 'qwe|asd' dd.sh

2:qwe

5:asdf

将包含 q 1 a 字符所在行显示出来

[root@bogon ~]# egrep -n '(q|1|a)' dd.sh

1:#!/bin/bash

2:qwe

3:qsdfe

4:qsdf

5:asdf

6:1234

7:12354

将开头是q 中间是sd 结束是f 的单词显示出来

[root@bogon ~]# egrep -n 'q(sd)f' dd.sh

3:qsdfe

4:qsdf

sed和awk

1、sed的作用和sed的工作流程

1)sed的作用

sed是一个文本文件解析转换工具

用于读取、修改、显示数据

2)sed的作用流程

读取数据:从文件、输入、管道命令中读取数据,临时存储数据

执行:根据sed命令在模式操作空间中进行无交互修改数据

显示:将文本文件的修改结果进行打印显示

2、sed命令常见的选项和操作符

1)sed命令选项

-n:显示处理后的结果

-h:显示帮助

-e:指定命令或者脚本处理输入的文本文件

-f:指定脚本处理输入的文本文件

-i:直接编辑文本文件

2)sed的操作符号

a:添加内容

d:删除内容

p:打印内容

s:替换内容

y:字符转换

c:将特定行替换成指定的内容

3、sed的基本应用

显示一到三行数据

[root@bogon ~]# sed -n '1,3p' dd.sh

#!/bin/bash

qwe

qsdfe

显示奇数

[root@bogon ~]# sed -n -e '1p;3p;5p' dd.sh

#!/bin/bash

qsdfe

asdf

不显示第一行数据(可以算是删除 没有真正删除掉)

[root@bogon ~]# sed '1d' dd.sh

qwe

qsdfe

qsdf

asdf

1234

12354

修改大小写

[root@bogon ~]# sed -i 's/qwe/QWE/' dd.sh

[root@bogon ~]# cat dd.sh

#!/bin/bash

QWE

qsdfe

qsdf

asdf

1234

12354

关键字添加注释

[root@bogon ~]# sed -i '/^QWE/s/^/#/' dd.sh [root@bogon ~]# cat dd.sh

#!/bin/bash #QWE

qsdfe

qsdf

asdf

1234

12354

将1到5行移动到6到7行中间

[root@bogon ~]# sed -i '1,5H;6,7G' dd.sh [root@bogon ~]# cat dd.sh #!/bin/bash QWE qsdfe qsdf asdf 1234

#!/bin/bash QWE qsdfe qsdf asdf 12354

#!/bin/bash QWE qsdfe qsdf asdf

4.awk的使用

1)awk的作用

过滤和读取数据使用

2)awk的变量

FS:文本字段的分隔符,可以使用空格为占位符

NF:处理行数

NR:处理数据的行号

$0:处理数据的整行数据

$n:处理数据行的第几列数据

显示第一列数据

[root@bogon ~]# awk '{print $1}' q.txt

192

192

192

显示所有内容

[root@bogon ~]# awk '{print}' dd.sh

#!/bin/bash #QWE qsdfe qsdf asdf

#!/bin/bash #QWE qsdfe qsdf asdf #!/bin/bash #QWE qsdfe qsdf asdf 12354

#!/bin/bash #QWE qsdfe qsdf asdf

在第一列和第二列之间添加--

[root@bogon ~]# awk '{print $1"--"$2}' q.txt

192.168.1.139--

--

--

--

192.168.1.111--

--

--

192.168.1.121--

从小到大排序

[root@bogon ~]# sort q.txt

192.168.1.111

192.168.1.121

192.168.1.139

 排序  r是逆序 从大到小

[root@bogon ~]# sort -nr q.txt

192.168.1.139

192.168.1.121

192.168.1.111

统计出现的次数   空格5就是有五行空格

[root@bogon ~]# sort q.txt | uniq -c

      5

      1 192.168.1.111

      1 192.168.1.121

      1 192.168.1.139

从历史命令中提取使用率最高的前五个命令

[root@bogon ~]#  history | awk '{print $2}' | sort |uniq -c |sort -nr |sed -n '1,5p'

     12 ifconfig

     12 awk

      7 sort

      6 yum

      3 sed

从历史命令中提取使用率最高的前五个命令

[root@bogon ~]#  history | awk '{print $2}' | sort |uniq -c |sort -nr |awk 'NR



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有