zoukankan      html  css  js  c++  java
  • sed & awk 概述

    概述

    一般情况下,从grep到sed和awk的学习过程是很自然的。sed和awk是一般用户、程序员和系统管理员们处理文本文件的有力工具。

    sed的名字来源于其功能,它是个字符流编辑器(stream editor),可以很好地完成对多个文件的一系列编辑工作。

    awk的名字来源于它的开发人Aho、Weinberger和Kernighan,它是一种程序设计语言,非常适合结构化数据的处理和格式化报表的生成。

    sed 与 awk 共性

    它们都使用相似的语法来调用。
    它们都是面向字符流的,都是从文本文件中一次一行地读取输入,并将输出直接送到标准输出端。
    它们都使用正则表达式进行模式匹配。
    它们允许用户在脚本中指定指令。

    它们有如此多的共同点,原因之是它们都起源于相同的行编辑器—ed。sed和awk的区别在于它们控制所做的工作时所用的指令不同。

    语法

    command [toptions] script_filename

    输入:stdin 或 文件

    输出:stdout 或 文件

    禁止:输入输出是同一个文件

    参数:sed和awk有区别,后面单独介绍

    脚本:当命令较少时,可以单独输入,命令多时就需要写道脚本文件中。

    sed & awk指令组成

    工作流程

    每个程序每次从输入文件中读取一个输入行,生成该输入行的备份,并且对该备份执行脚本中指定的指令。因此,对输入行所做的改动不会影响真正的输入文件。

    当读取输入的每行时,程序读取脚本中的第一个指令并检测当前行的模式。如果没有匹配,这个过程被忽略并读取下一个指令。如果有一个匹配,那么执行过程中指定的一个或多个动作。读取所有的指令,而不只是读取与输入行匹配的第一条指令。
    当所有可用指令被解释并应用于单个行后,sed输出该行并循环处理每个输入行。另一方面,awk不自动输出行,脚本中的指令控制awk最终所做的事情。
    在sed和awk中过程的内容有很大不同。在sed中,过程由类似于行编辑器中使用的那些编辑命令组成。大部分命令由单个字母组成。
    在awk中,过程由程序设计语句和函数组成。过程必须用大括号括起。

  • 相关阅读:
    Linux命令行和Shell脚本编程
    Excel自动触发时间
    dom4j读取xml文件 简单例子
    GSM & Foxit Reader
    ThreadPoolExecutor 线程池
    Linux /var/log
    delphi开发技巧
    利用ScktSrvr打造多功能Socket服务器
    delphi中Windows消息大全使用详解
    自己构造注入点方便入侵
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9185032.html
Copyright © 2011-2022 走看看