shell基础10 sed,gawk和shell的对比

摘自百度问答几句话:

awk和sed都是文本流编辑器,通常都是以行(记录)为单位处理文本;
awk更是可以将一个记录根据指定分隔符分割为多个字段,然后处理字段,更为灵活。awk甚至可以看作一门编程语言,内部语言环境(语法)类似C语言
shell是linux/unix的人机交互接口,将用户输入的命令翻译为内核可以执行的指令,其界面可以认为是我们平时看到的命令终端窗口。shell中可以调用外部程序,例如sed和awk。
shell+sed+awk的组合非常强大,足以应付日常操作需求。

awk是域编辑器
sed是流编辑器
上面两个都是编辑器,只是使用上比较奇葩,我没办法告诉你怎么用,你得自己搜资料学。特别是awk很繁杂。

shell,英文的意思是壳。你可以当它是linux的外壳,程序员通过它和内核相交互。
有一种通俗但不严谨的说法是命令行。因为我们在linux下输入的所有命令都是在shell中完成的。

awk
awk是一种程序语言,对文档资料的处理具有很强的功能。awk擅长从格式化报文或从一个大的文
本文件中抽取数据。
awk的命令格式为:
awk [-F filed-separator] “commands” input-file(s)  
awk将一行文字按分隔符(filed-separator)分为多个域,依次记为$ 1,$ 2 . . . $ n。$0
代表所有域值。因此awk更适合于以域为单位来处理文件。
sed
sed 是一个精简的、非交互式的编辑器,它能执行与编辑vi相同的编辑任务。
sed的命令格式为:
sed [options] ‘command‘ file(s)  
作为编辑器,当然少不了插入(a/、i/)、删除(d)、查找替换(s)等命令。

参考文献:

https://zhidao.baidu.com/question/417469535.html

http://www.mamicode.com/info-detail-1480826.html

原文地址:https://www.cnblogs.com/Hermioner/p/9412046.html