zoukankan      html  css  js  c++  java
  • Linux下sed,awk,grep,cut,find学习笔记

    awk

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

    awk的命令格式为:

    1. awk [-F filed-separator] “commands” input-file(s)  

     

    每一个命令(commands)都由两部分组成:一个模式(pattern)和一个相应的动作
    (action)

    [c-sharp] view plain copy print ?
    1. /pattern1/{action1}  
    2. /pattern2/{action2}  
    3. /pattern3/{action3}  

     

    awk将一行文字按分隔符(filed-separator)分为多个域,依次记为$ 1,$ 2 . . . $ n。$0代表所有域值。因此awk更适合于以域为单位来处理文件。加之ARGIND等内置变量,使awk能处理多个文件。典型的应用为查找一个文件中的某个字段是否在另一个文件中出现。例子见我的另一篇博客【awk】诡异的错误,linux和windows换行的区别。但由于$0代表所有域,即整行,因此awk也有简单行处理能力。

    sed

    sed 是一个精简的、非交互式的编辑器。它能执行与编辑vi和emacs相同的编辑任务,但sed编辑器不提供交互使用方式,只能在命令行下输入编辑命令。

    sed的命令格式为:

    1. sed [options] 'command' file(s)  
    2. sed [options] -f scrīptfile file(s)  

     

    作为编辑器,当然少不了插入(a/、i/)、删除(d)、查找替换(s)等命令。详见sed命令详解 。

    总结

    1. 如果文件是格式化的,即由分隔符分为多个域的,优先使用awk
    2. awk适合按列(域)操作,sed适合按行操作
    3. awk适合对文件的抽取整理,sed适合对文件的编辑。
    4. (想到再补~)
  • 相关阅读:
    利用 innodb_force_recovery 解决MySQL服务器crash无法重启问题
    MySQL-5.7复制功能的默认设置改进
    MySQL explain
    MySQL服务器参数
    MySQL参数调优
    Oracle RAC(Real Application Clusters)
    MySQL show processlist 执行状态分析
    MongoDB 高可用集群架构简介
    docker网络
    centos 7.3镜像制作
  • 原文地址:https://www.cnblogs.com/riskyer/p/3318170.html
Copyright © 2011-2022 走看看