sed 和 awk 是linux上两个文本处理工具,两者的功能比较相似,相比sed, awk的功能更为强大一些,但使用上也更加复杂。
sed
sed是一种流编辑器,它可以分析标准输入流的的数据, 然后将数据经过处理后,再输出到标准输出,能够完美的配合正则表达式使用。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
显示文本内容,删除指定行
|
|
在指定位置插入行
|
|
替换指定行
|
|
显示指定行
|
|
显示含有指定关键词的行
|
|
替换文本内容,可通过使用正则表达式提高替换的效率
|
|
awk
awk是一个强大的文本分析工具,可以把文本逐行读入,以空格为默认的分隔符将每行切片,切开的部分再进行各种分析处理.相较于 sed 常常作用于一整个行的处理,awk 则比较倾向于一行当中分成数个字段来处理。
基本用法,\$n 为awk里的内置变量,\$0 表示所有列,\$1 表示第一列,\$2 表示第二列,依次类推
|
|
函数使用
|
|
搜索内容
|
|
其它内置变量
|
|
自定义变量
|
|
条件语句和循环语句
|
|
实例
统计文件内所有的数字之和,文件内容如下:
|
|
awk命令:
|
|
参考资料: