• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

sed、awk、grep这三个什么区别?有必要都掌握么

游~游~游 2018-09-11 浏览量:1652
sed、awk、grep这三个什么区别?有必要都掌握么
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • grep基本是以行为单位处理文本的; 而awk可以做更细分的处理,通过指定分隔符将一行(一条记录)划分为多个字段,以字段为单位处理文本。awk中支持C语法,可以有分支条件判断、循环语句等,相当于一个小型编程语言。
    使用awk的第二个理由是awk是一个简单的工具,当然这是相对于其强大的功能来说的。的确,UNIX有许多优秀的工具,例如UNIX天然的开发工具C语言及其延续C++就非常的优秀。但相对于它们来说,awk完成同样的功能要方便和简捷得多。
    Sed是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。sed编辑器按照一次处理一行的方式来处理文件(或者输入)并把输出送到屏幕上。你可以在vi和ex/ed编辑器里识别他的命令。sed把当前正在处理的行保存在一个临时缓存里,这个缓存叫做模式空间。
    • 发布于 2018-09-12
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:11
  • 1. sed 也叫流编辑器 stream editor 编辑文件非常棒例如我想替换文档中所有的i2c字段为 spi  直接可以 sed -i 's/i2c/spi' xxx.c 就直接替换好了还可以指定- f 参数进行模式匹配非常方便.

    2. awk 是格式化工具 也是非常好用例如我经常想要批量杀掉不要的进程  就可以写个 for 循环例如我开了一堆 sysbench 的进程我想 kill 掉他们就可以用: for i in `ps axu | grep sysbench |grep -v grep | awk '{print $2}'|xargs`; do  sudo kill -9 $i ; done  这样通过awk 获取进程 ID 然后终止进程.

    3. grep 就不用说 g代表 gnu  re 代表 regular expression 正则表达式 p 代表 print 是我们用的最多的 linux 工具之一.

    筛选很多东西都可以用 grep 例如我想筛选一个配置文件中的配置信息可以直接 grep -v "#"  /etc/httpd/conf/httpd.conf  就将所有的注释筛选掉了.非常方便里面的 re 就是正则表达式 非常方便.  grep -v  "^$"  xxx.txt 就可以过滤掉文件中的所有空行.

    重要与否看个人了.

    • 发布于2018-09-11
    • 举报
    • 评论 0
    • 2
    • 0

  • 差不多,都需要学,人家的代码里有用 sed  有用 awk,有用 grep,你看人家的代码,不能保证人家只用一种呀,也不能保证所有人都用一种呀,当然都需要会了
    • 发布于2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

  • grep只匹配搜索

    sed是行编辑器

    awk是综合文本处理工具(也是一一种编程语言)

    它们差异很大的,不过它们都支持规则式(正则式)


    是否有必要掌握看你需求啦

    • 发布于2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 非常强大的文本操纵工具,sed,awk,grep 这个三个命令 都是操作文本文件的
    unix系统有几个非常命令的特点:
    1. 对于内核而言,unix文件都是字节序列。io设备也是文件。
    2. 至于文件的含义交由应用程序来解释。其中文本文件非常重要,因为unix提供 很多了实用程序(utility),这些程序功能相对独立,但可以通过管道来实现进程间通信(IPC),这样松散的耦合可以完成复杂的操作。那么进程间的通信的数据格式是怎样的呢? 其实对于实用程序而言,这个数据格式就是简单的文本文件。此外,还有IO重定向,也是一个不错的创意。至于文本文件中的内容采用什么格式呢?这个很具体的命令有关,那么操作文本就变得非常重要。grep,sed和awk就是三个操纵文本文件的命令
    grep搜索
    sed 修改和编辑文本文件中某些行,也可以搜索
    awk 是访问文本文件,操纵文本文件中某些数据,进行搜索统计运算
    • 发布于2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 在写linux下的脚本时都有用到,功能都差不多。
    • 发布于2018-09-12
    • 举报
    • 评论 0
    • 0
    • 0

  • grep是用来查找的

    sed是用于编辑整行的

    awk属于将整行的内容分成多个部分来处理

    • 发布于2018-09-16
    • 举报
    • 评论 0
    • 0
    • 0

  • sed是文本替换用的,grep是搜索文本用的,awk功能最为强大,有自己的脚本,最好都掌握i,不行至少掌握sed和grep
    • 发布于2018-09-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 这三个的功能有点类似,掌握一个就好了,建议熟悉掌握awk
    • 发布于2018-09-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 区别不大,主要的功能都是一样的,只要熟悉其中一个就行
    • 发布于2018-10-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 功能相近,主要选取一个自己熟悉的工具就行。
    • 发布于2018-10-18
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

sed、awk、grep这三个什么区别?有必要都掌握么