Linux 中常用的文本处理工具:
grep
sed
awk
ed
strem editor 流编辑器
sed 编辑器是一行一行的处理文件内容的。正在处理的内容存放在模式空间(缓冲区)内,处理完成后按照选项的规定进行输出或文件的修改。
sed主要用来自动编辑一个或多个文件;简化文件的反复操作;非交互式编译文件
语法:
sed 【options】 ‘【command】’ 【filename】
options:
-n 抑制自动(默认的)输出 读取下一个输入行,-n要读取的行号
-e 执行多个sed命令
-f 运行脚本
-i 编辑文件内容
-i.bak 编辑的同时创造.bak的备份
-r 使用扩展的正则表达式
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 不满足匹配时跳转
显示文件第三行的内容
在文件的头插入“###”,在文件尾插入“@@@”,把文件第三行替换成“$$$”
awk
AWK是一种优良的文本处理工具,linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言的最大功能取决于一个人所拥有的知识。awk命名:Alfred Aho Peter Weinberger和brian kemighan三个人的姓的缩写。
最简单地说,AWK是一种用于处理文本的编程语言工具。任何awk语句都是由模式和动作组成,一个awk脚本可以有多个语句。模式决定动作语句的触发条件和触发时间。
特殊字段:
BEGIN语句设置计数和打印头部信息,在任何动作之前进行。
END语句输出统计结果,在完成动作之后执行。
分隔符默认是空格,可以用-F,改变成逗号为分隔符-F,或改成冒号-F
eg:准备要显示的内容
vim result.txt
显示/etc/passwd第一列,以:作为分隔符