linux命令sed与awk是干什么用的,怎么用?
非常强大的文本操纵工具,sed,awk,grep 这个三个命令 都是操作文本文件的
unix系统有几个非常命令的特点:
1. 对于内核而言,unix文件都是字节序列。io设备也是文件。
2. 至于文件的含义交由应用程序来解释。其中文本文件非常重要,因为unix提供 很多了实用程序(utility),这些程序功能相对独立,但可以通过管道来实现进程间通信(IPC),这样松散的耦合可以完成复杂的操作。那么进程间的通信的数据格式是怎样的呢? 其实对于实用程序而言,这个数据格式就是简单的文本文件。此外,还有IO重定向,也是一个不错的创意。至于文本文件中的内容采用什么格式呢?这个很具体的命令有关,那么操作文本就变得非常重要。grep,sed和awk就是三个操纵文本文件的命令
grep搜索
sed 修改和编辑文本文件中某些行
awk 是访问文本文件,操纵文本文件中某些数据
明白了吗?
sed 可理解为 stream editor 的简称,即文本流编辑器。以行为单位处理文本,可以做插入行、删除行、行内文本替换等操作。
awk 中存在 记录 和 字段 两个关键概念,通常默认一行就是一个记录,一个记录又可以被指定分隔符(默认是空格或tab)分割为多个字段。因此awk更为灵活与强大(并且有很多内置函数和变量可使用)。
关于具体用法,太多了。强大的东西总不是三言两语能够说尽的。网上有很多教程可以看,例如:
Sed - An Introduction and Tutorial.doc
Awk - An Introduction and Tutorial.doc