4.2_文本处理工具

## 1.grep ##

grep

[Globally search a Regular Expression and Print] 

(1)grep 格式 

##grep 格式##

grep 匹配条件 处理文件

grep root passwd             #过滤root关键字
grep -E = egrep              #扩展搜索
grep -i root passwd          ##忽略大小写
grep -E "\<root" passwd      ##root字符之前不能有字符
grep -E "root\>" passwd      ##root字符之后不能有字符
grep -数字                   ##显示过滤行以及上面几行和下面几行            
grep -n                      ##显示匹配的行所在行号
grep -A                      ##显示过滤行以及下面几行
grep -B                      ##显示过滤行以及上面几行
grep -v                      ##反向过滤

 

 

 

(2)grep字符数量匹配规则  

grep字符数量匹配规则 
^westos       ##以westos开有
 westos$      ##以westos结尾
 w....s       ##w开头s结尾中间4个任意字符
 .....s       ##s结尾前面5个任意字符
 *            ##字符出现任意
 ?            ##0到1次
 +            ##1次到任意次
 {n}          ##n次
 {m,n}        ##m到n次
 {0,n}        ##0-n次
 {,n}         ##0-n次
 {m,}         ##最少m次
(lee){2}      ##lee字符串出现2次

 

 

练习脚本: 请显示系统中能被su命令切换的用户名称

##2.sed ##

命令格式:

sed 参数 命令 处理对象

sed 参数 处理对象 -f 处理规则文件

(1)显示 

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

 

(2)删除 

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

 

(3)添加 

a ##添加
sed -e '$a hello world' fstab   ##给最后一行添加
sed -e '$a hello\nworld' fstab   ##给最后一行添加两行
sed -e '/^#/a hello world' fstab  ##给#开头的行添加

 

 

(4)替换 

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

(5)符合的行写到指定文件 

w  ##把符合的行写到指定文件中 
sed '/^UUID/w westofile' westos ##把westos中UUID开头的行写入westosfile中

(6)插入 

i ##插入
sed '5ihello westos' westos 

(7)整合 

r  ##整合文件
sed '5r haha' westos  ##将haha放在westos第五行后边

(8)字符替换 

sed 字符替换
sed 's/:/###/g' westos 
sed 's/:/###/' westos 
sed 's/:/###/g' westos 
sed '1,5s/:/###/g' westos 
sed '1s/:/###/g' westos 
sed '1s/:/###/g;5s/:/###/g' westos 
sed '/lp/,/shutdown/s/:/###/g' westos 
sed 's/\//####/g' westos 
sed 's@/@####@g' westos 

sed 's@/@####@g' -i  westos    把sed处理的内容保存到westos文件中

 

 

 

练习及脚本

Apache_port.sh

此脚本接入数字 http的端口就改为此数字

假设selinux为关闭状态

例如: sh Apache_port.sh

ERROR: Pleaase input port number following script !!

sh Apache_port.sh 8080

apache的端口会被修改为8080

##3.awk##

报告生成器,专门用来截取需要的数据 

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

NR                #行数

NF                #列数

FILENAME   #文件名称本身

westos          #westos变量值

“westos”        #westos字符串

/bash$/                    #条件

/条件1|条件2/          #条件1或者条件2

/条件1/||/条件2/       #条件1或者条件2

/条件1/&&/条件2/    #条件1并且条件2

$0  #所有的列

$1  #第一列

$2  #第二列

$3   #第三列

 

 

 

 

课后练习:

使用ifconfig但只显示ip

相关推荐

  1. awk命令——文本数据格式处理工具

    2024-05-04 07:02:02       24 阅读
  2. 掌握 Awk:Linux 文本处理的终极工具

    2024-05-04 07:02:02       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-04 07:02:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-04 07:02:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-04 07:02:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-04 07:02:02       20 阅读

热门阅读

  1. 每天学习一个Linux命令之ldd

    2024-05-04 07:02:02       8 阅读
  2. logback

    2024-05-04 07:02:02       10 阅读
  3. DFS算法 全排列问题

    2024-05-04 07:02:02       7 阅读
  4. HIVE基本数据类型

    2024-05-04 07:02:02       9 阅读
  5. WebSocket学习笔记

    2024-05-04 07:02:02       9 阅读