你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

Shell脚本学习——(2)文本处理工具

2021-11-25 18:16:31

文章目录

    • 一、grep
      • 1、grep与egrep的关系
      • 2、实验内容
        • (1)、实验素材准备
        • (2)、实验步骤
    • 二、sed
    • 三、awk
      • 1、
      • 2、实验内容

一、grep

1、grep与egrep的关系

grep -E = egrep
grep支持基本正则表达式
egrep对于基础和扩展的正则表达式都支持

2、实验内容

(1)、实验素材准备

在这里插入图片描述

(2)、实验步骤

grep (参数) xxx 文件名

grep参数意义
关键字查询带有关键字的行
-E xx/xxx筛选含有这两种关键字之一的内容
-e xx -e xxx与上一条等价
-i
-n
-

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、sed

命令格式: sed 参数 命令 处理对象 或是 sed 参数 处理对象 -f 处理规则文件

对字符的处理

p	显示

sed -n 5p filename##显示第五行
sed -n 3,5p filename##显示3到5行
sed -ne "3p;5p filename##显示3和5行
sed -ne 1,5p filename##显示1-5行
sed -ne '5,$p' filename##显示5到最后以行
sed -n '/^#/p' fstab ##显示以#开头的行

在这里插入图片描述显示第五行
在这里插入图片描述显示1和5行
在这里插入图片描述显示1到5行
在这里插入图片描述第5行到最后
在这里插入图片描述显示以test开头的行
在这里插入图片描述

d	删除

sed 5d filename##删除第五行
sed '/^#/d' filename##把#开头的行删除
sed '/^UUID/!d' fstab##除了UUID以外的行都删除
sed -e '5,$d' filename

在这里插入图片描述删除以test开头的行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述删除三行及三行以后的内容
在这里插入图片描述

a	添加

sed -e '$a hello world' filename
sed -e '$a hello\nworld' filename
sed -e '/^#/a hello world' filename

在这里插入图片描述在这里插入图片描述

c	替换

sed -e '/^#/c hello world' fstab
sed '5chello world' westos

在这里插入图片描述

w	把符合的行写到指定文件中
sed '/^UUID/w westofile' westos ##把westos中UUID开头的行写入westosfile中
i	插入
sed '5ihello westos' filename ##将hello westos插入到file的第一行
r	整合文件
sed '5r haha' westos ##

在这里插入图片描述在这里插入图片描述

三、awk

1、

awk -F 分割符 BEGIN {} {} END {} FILENAME

参数意义
NR行数
NF列数
FILENAME文件名称本身
XXXXX变量名
“XXXXX”字符串
bash$条件
/条件1/条件2/条件1或者条件2
/条件1/
/条件1/&&条件2/条件1并且条件2
参数意义
$0所有的列
$1第一列
$2第二列

2、实验内容

在passwd中,以:为分割符,以root为开始打印每一行的第一列并以end结束整个打印
在这里插入图片描述
在passwd中,打印行数
在这里插入图片描述
在passwd中,打印列数
在这里插入图片描述
打印出数据的来源文件名
在这里插入图片描述
以westos为变量名,每次循环加一,直至结束后输出行数
在这里插入图片描述
输出以nologin结尾的行的第1,3列
在这里插入图片描述
同上,但当要求的列数超过本身的列数时,会只显示存在的那一列。
在这里插入图片描述
条件中两个元素的或关系
在这里插入图片描述
两个条件的或关系
在这里插入图片描述
两个条件的并关系
在这里插入图片描述
第七列以bash结尾的内容和它的反命题
在这里插入图片描述