课时13:sed和awk使用方法
Posted Aiden_Zhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课时13:sed和awk使用方法相关的知识,希望对你有一定的参考价值。
sed
sed(stream editor 流编辑器)编辑器是一行一行的处理文件内容的。正在处理的内容存放在模式空间(缓冲区)内,处理完成之后按照选项的规定进行输出或文件修改。
sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直至文件末尾。文件内容并没有改变,除非使用重定向存储输出。
sed主要用来自动编辑一个或者多个文件,简化对文件的反复操作。
语法:
sed [options] ‘[command]’ [filename]
options:
- -n 一致自动(默认的)输出,读取下一个输入行
- -e 执行多个sed指令
- -f 运行脚本
- -i 编辑文件内容
- -i.bak 编辑的同时创造.bak的备份
command:
-
a 在匹配后追加
-
i 在匹配后插入
-
p 打印
-
d 删除
-
r/R 读取文件/一行
-
w 另存
-
s 查找
-
c 替换
-
y 替换
-
h/H 拷贝/追加模式空间(缓冲区)到存放空间
-
g/G 从存放空间取回/追加到模式空间
-
x 两个空间内容交换
-
n/N 拷贝/追加下一行内容到当前
-
D 删除\\n之前的内容
-
P 打印\\n之前的内容
-
b 无条件跳转
-
t 满足匹配后的跳转
-
T 不满足匹配后的跳转
一些例子:
- 显示文件第三行
#!/bin/bash sed -n '3p' filename
- 显示文件前三行
#!/bin/bash sed -n '1,3p' filename
- 显示文件除前三行以外的内容
#!/bin/bash sed -n '1,3!p' filename
- 显示第三行及之后的内容
#!/bin/bash
sed -n '3,+3p' filename
awk
awk是一种优良的文本处理工具,Linux及Unix环境中现有的功能强大的数据处理引擎之一。最简单地说,awk是一种用于处理文本的变成语言工具。
任何awk语句都是由模式和动作组成,一个awk脚本可以有多个语句。模式决定动作语句的触发条件和出发时间。
特殊字段:
BEGIN语句设置计数和打印头部信息,在任何动作之前进行。
END语句输出统计结果,在完成动作之后执行。
分隔符默认是空格,可以用-F,改为逗号为分隔符。
以上是关于课时13:sed和awk使用方法的主要内容,如果未能解决你的问题,请参考以下文章