iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux中sed和awk有哪些区别
  • 940
分享到

linux中sed和awk有哪些区别

2023-06-30 13:06:52 940人浏览 八月长安
摘要

这篇文章主要讲解了“linux中sed和awk有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中sed和awk有哪些区别”吧!区别:1、sed是流编辑器,而awk是文本格式

这篇文章主要讲解了“linux中sed和awk有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中sed和awk有哪些区别”吧!

区别:1、sed是流编辑器,而awk是文本格式化工具,报告生成器;2、awk适合对文件进行抽取整理,sed适合对文件进行编辑;3、sed读取一行数据,会以行作为单位进行处理,而awk读取一行,会切割成字段,以字段(列)为单位,进行细节处理。

教程操作环境:Centos 6系统、Dell G3电脑。

awk

awk是一种程序语言,对文档资料的处理具有很强的功能。awk擅长从格式化报文或从一个大的文本文件中抽取数据。

awk 命令是逐行扫描文件(从第 1 行到最后一行),寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作;反之,则不对行做任何处理。

awk 命令的基本格式为:

awk [选项] '脚本命令' 文件名

此命令常用的选项以及各自的含义,如表 1 所示。

      表 1 awk 命令选项以及含义
              选项              含义
              -F fs              指定以 fs 作为输入行的分隔符,awk 命令默认分隔符为空格或制表符。
              -f file              从脚本文件中读取 awk 脚本指令,以取代直接在命令行中输入指令。
              -v var=val              在执行处理过程之前,设置一个变量 var,并给其设备初始值为 val。

awk 的强大之处在于脚本命令,它由 2 部分组成,分别为匹配规则和执行命令,如下所示:

'匹配规则{执行命令}'

这里的匹配规则,和 sed 命令中的 address 部分作用相同,用来指定脚本命令可以作用到文本内容中的具体行,可以使用字符串(比如 /demo/,表示查看含有 demo 字符串的行)或者正则表达式指定。另外需要注意的是,整个脚本命令是用单引号('')括起,而其中的执行命令部分需要用大括号({})括起来。

在 awk 程序执行时,如果没有指定执行命令,则默认会把匹配的行输出;如果不指定匹配规则,则默认匹配文本中所有的行。

举个简单的例子:

[root@localhost ~]# awk '/^$/ {print "Blank line"}' test.txt

在此命令中,/^$/ 是一个正则表达式,功能是匹配文本中的空白行,同时可以看到,执行命令使用的是 print 命令,此命令经常会使用,它的作用很简单,就是将指定的文本进行输出。因此,整个命令的功能是,如果 test.txt 有 N 个空白行,那么执行此命令会输出 N 个 Blank line。

sed

sed 命令采用的是流编辑模式,最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据。

sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中,此命令执行数据的顺序如下:

  • 每次仅读取一行内容;

  • 根据提供的规则命令匹配并修改数据。注意,sed 默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据;

  • 将执行结果输出。

当一行数据匹配完成后,它会继续读取下一行数据,并重复这个过程,直到将文件中所有数据处理完毕。

sed 命令的基本格式如下:

sed [选项] [脚本命令] 文件名

该命令常用的选项及含义,如表 1 所示。

      表 1 sed 命令常用选项及含义
              选项              含义
              -e 脚本命令              该选项会将其后跟的脚本命令添加到已有的命令中。
              -f 脚本命令文件              该选项会将其后文件中的脚本命令添加到已有的命令中。
              -n              默认情况下,sed 会在所有的脚本指定执行完毕后,会自动输出处理后的内容,而该选项会屏蔽启动输出,需使用 print 命令来完成输出。
              -i              此选项会直接修改源文件,要慎用。

成功使用 sed 命令的关键在于掌握各式各样的脚本命令及格式,它能帮你定制编辑文件的规则。

sed和awk的区别

  • sed是流编辑器,而awk是文本格式化工具,报告生成器

    如果文件是格式化的,即由分隔符分为多个域的,优先使用awk

  • awk适合对文件的抽取整理,sed适合对文件的编辑。

  • awk适合按列(域)操作,sed适合按行操作

    sed:每次读入一行来处理的,sed 适合简单的文本替换和搜索,sed读取一行,以行作为单位,进行处理。

    awk:每次读入一行来处理的(同sed),但awk读取一行,切割成字段,以字段(列)为单位,进行细节处理。

感谢各位的阅读,以上就是“linux中sed和awk有哪些区别”的内容了,经过本文的学习后,相信大家对linux中sed和awk有哪些区别这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: linux中sed和awk有哪些区别

本文链接: https://www.lsjlt.com/news/329202.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux中awk和sed有哪些区别
    这篇文章主要讲解了“linux中awk和sed有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中awk和sed有哪些区别”吧!linux中awk和sed的区别:1、sed是...
    99+
    2023-06-30
  • linux中sed和awk有哪些区别
    这篇文章主要讲解了“linux中sed和awk有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中sed和awk有哪些区别”吧!区别:1、sed是流编辑器,而awk是文本格式...
    99+
    2023-06-30
  • sed和awk怎么在Linux中使用
    本篇文章给大家分享的是有关sed和awk怎么在Linux中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。sed用法:sed是一个很好的文件处理工具,本身是一个管道命令,主要...
    99+
    2023-06-09
  • linux中at和crontab有哪些区别
    这篇“linux中at和crontab有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux中at和cronta...
    99+
    2023-07-02
  • linux中fork和exec有哪些区别
    这篇文章主要介绍“linux中fork和exec有哪些区别”,在日常操作中,相信很多人在linux中fork和exec有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中fork和exec有哪...
    99+
    2023-06-30
  • linux中x64和x86有哪些区别
    这篇文章主要为大家展示了“linux中x64和x86有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中x64和x86有哪些区别”这篇文章吧。区别:1、寄存器分配不同,x64有1...
    99+
    2023-06-26
  • linux中ext4和ext3有哪些区别
    这篇文章主要讲解了“linux中ext4和ext3有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中ext4和ext3有哪些区别”吧!区别:1、ext3有32000个子目录...
    99+
    2023-06-30
  • linux中poll和select有哪些区别
    这篇文章主要讲解了“linux中poll和select有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中poll和select有哪些区别”吧!linux中poll和sele...
    99+
    2023-07-02
  • linux中xfs和ext4有哪些区别
    本篇内容主要讲解“linux中xfs和ext4有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中xfs和ext4有哪些区别”吧!区别:1、单个文件的大小,EXT4可以是16GB...
    99+
    2023-06-30
  • linux中vsz和rss有哪些区别
    这篇文章主要介绍“linux中vsz和rss有哪些区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux中vsz和rss有哪些区别”文章能帮助大家解决问题。linux中vsz和rss的区别:1...
    99+
    2023-07-02
  • linux中ex3和ex4有哪些区别
    这篇文章主要介绍“linux中ex3和ex4有哪些区别”,在日常操作中,相信很多人在linux中ex3和ex4有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中ex3和ex4有哪些区别”的疑...
    99+
    2023-06-29
  • linux中sudo和su有哪些区别
    本篇内容介绍了“linux中sudo和su有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区别:1、sudo是以root用户方式执行...
    99+
    2023-06-30
  • linux和ubuntu有哪些区别
    这篇文章主要为大家展示了“linux和ubuntu有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux和ubuntu有哪些区别”这篇文章吧。linux和ubuntu的区别:1、li...
    99+
    2023-06-22
  • Unix和Linux有哪些区别
    这篇文章主要为大家展示了“Unix和Linux有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Unix和Linux有哪些区别”这篇文章吧。Unix和Li...
    99+
    2024-04-02
  • linux和macos有哪些区别
    这篇文章将为大家详细讲解有关linux和macos有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。区别:1、linux是开源的免费系统,可以在很多种设备上运行也允许开发者二次开发,而macos是苹...
    99+
    2023-06-26
  • freebsd和linux有哪些区别
    这篇文章主要介绍“freebsd和linux有哪些区别”,在日常操作中,相信很多人在freebsd和linux有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”freebsd和linux有哪些区别”的疑...
    99+
    2023-06-22
  • nuttx和linux有哪些区别
    这篇“nuttx和linux有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“nuttx和linux有哪些区别”文章吧...
    99+
    2023-07-02
  • Shell中正则表达式及sed和awk常见问题有哪些
    这篇文章主要介绍了Shell中正则表达式及sed和awk常见问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1 正则表达式中的+、?、*分别表示什么含义?这三个字符用...
    99+
    2023-06-20
  • linux中vi和cat的区别有哪些
    本篇内容主要讲解“linux中vi和cat的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中vi和cat的区别有哪些”吧!vi和cat的区别:1、cat是一个文本打印的命令,...
    99+
    2023-06-30
  • linux中buffer和cache的区别有哪些
    本文小编为大家详细介绍“linux中buffer和cache的区别有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux中buffer和cache的区别有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作