sed概述
sed以行为单位处理数据,sed有两种语法格式:命令行模式、脚本模式,直接使用sed修改的是缓冲区中数据而非原文件数据,sed更适合编辑匹配到的文本
sed使用
命令行模式
一、语法格式
#使用格式
sed [选项] '处理动作' 文件名
选项中包括如下:
处理动作包括如下:
二、简单示例
文件(1.txt)准备,文件内容如下:
gle
gooogle
taobao.com
taotaobaobao.com
jingdong.com
dingdingdongdong.com
10.1.1.1
192.168.21.133
hello world
helloworld yourself
简单示例1——输出第四行内容
简单示例2——在第4行后添加hello
简单示例3——将第4行内容替换为你好
简单示例4——删除文件最后一行
简单示例5——查找文档中hello world并将其替换为ROOT
- s代表搜索模式
- /表示分隔符,用户可自行定义,示例如下:
- g表示全局搜索,p表示打印
简单示例五——注释掉前五行
简单示例六——将b文件内容增加到1.txt文件下方
拓展:
简单示例7——多条sed命令
拓展:
脚本模式
第一步,指定解释器:#!/bin/sed -f
第二步,编写相关内容
第三步,调用格式如下:
#不用考虑权限
sed -f 脚本文件名 处理文件名
#需赋予其文件可执行权限
./脚本文件名 处理文件名
简单示例如下:
awk概述
awk以列为单位处理数据,与grep、sed并称"linux三剑客",awk 更适合格式化文本,对文本进行较复杂格式处理
awk使用
命令行模式
一、语法格式
awk [选项] '条件1{执行动作} 条件2{执行动作}...' 文件名
简单要点说明:
二、简单示例
文件(2.txt)准备如下:
1 tom 12 男,hello
2 jack 13 女,hel
3 jerry 14
简单示例1——输出文件中第一列和第四列
- 列的划分标准为空格或TAB(制表符)
简单示例二——格式化输出第一列,第三列
- 格式化输出只能使用printf
简单示例三——输出第二行第一列的内容
简单示例四——输出第一行第一列第二行第一列的内容
简单示例五——指定分隔符为逗号
简单示例六——使用内建变量指定逗号为分隔符
- BEGIN在读取内容前执行常用作初始化,END在所有操作执行完毕后执行,简单示例如下:
简单示例七——使用正则(查找第一列为1的1-4列数据)
- ~ 和 !~分别代表匹配正则表达式和不匹配正则表达式
脚本模式
第一步,指定解释器:#!/bin/awk -f
第二步,编写相关脚本
第三步,调用格式如下:
#该方式调用不用考虑权限和文件后缀
awk -f 脚本名 文件名
#该方式需要考虑权限问题
./脚本文件名 相关文件名
简单示例如下: