一:sed 行文本处理

  • 基本概念

    • sed 用于处理单行文本
    • sed 命令本身不会修改源文件,只是处理文件"流"的内容。
    • 如果需要修改源文件,请使用 -i  或者 重定向 文件。
  • 使用场景

    • 文件过大,编辑困难
    • 有规律的修改大部分内容
  • 修改

    • 基本语法
          sed [operation] file
    • s 查找替换

      • sed -e ’s/待修改内容/修改内容/g' demo.txt
        
        g 代表全局替换,如果不使用 g ,则只会修改第一个发现的e 代表简单输出文件,如果需要修改源文件,请使用 -i
    • y 字符转换

      • sed -e 'y/待修改字符/修改字符/' demo.txt
        
        e 代表简单输出文件,如果需要修改源文件,请使用 -i
        
        注意:  转换字符长度要和被转换长度相同  例如: sed -i 'y/56/xf/' demo.txt   5 转换 x, 6 转换 f
  • 删除
    • 基本语法
          sed -i  '行' 文件
    • 示例
          删除 第一行
          sed  -i  '1d' demo.txt
      
          删除 第一行至第三行
          sed -i ‘,3d’ demo.txt
  • 插入
    • 基本语法
          sed -I ‘行 位置 内容' 文件
    • 示例:
          demo.txt 文件的 第二行之前插入一行,内容为 insert
          sed -i '2 i insert' demo.txt
      
          i 表示匹配行之前插入,a 匹配行之后插入

二:awk 列文本处理

  • 简介

    • awk 列文本处理
    • 原理是将文本读出,进行域的切分,所以在 awk 中,文本是有域的概念的
  • 输出指定 域 的内容

    • 先看一条 nginx 日志

      • /Oct/::: +]    123.124.16.83 192.168.240.255
    • 在 awk 中,默认是以 空格 来进行 域 的切分的,
      • 按照切分逻辑
        $   123.124.16.83
        $   -
        $   -
        $   [/Oct/:::
        ....
        SO
        $   状态码
        
    • 所以,按照域的切分规则,输出对应的内容

      • 打印对应的 $awk {print $}'  access_log
        123.124.16.83
  • 指定域的分隔符
    • 当然,我们也可以使用 -F 来指定域的分割符,来进行域的切分
    • awk -F 'HTTP' '{print $1}'  access_log
      
      123.124.16.83 - - [10/Oct/2018:10:24:56 +0800] "GET /static/favicon.ico 
  • 确定域个数

    • 在上面的文本中,可能有多个域,可用通过  NF 变量来确定域的个数
    • awk '{print NF}' access_log
      
  • 打印固定域

    • 通过打印 NF 的值,来确定对应域的值
    • 打印最后一个域的值
          awk '{print $NF}' access_log
      
      打印倒数第二个域的值
           awk '{print $(NF - 1)}' access_log

《linux 文本处理》- sed/awk的更多相关文章

  1. Sed&awk笔记之sed篇

    http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Ed ...

  2. linux sed awk seq 正则使用 截取字符 之技巧

    [root@room9pc01 ~]# seq 5 1 2 3 4 5 [root@room9pc01 ~]# seq 2 5 2 3 4 5 seq 1 2 10 1 3 5 7 9 [root@d ...

  3. 1.Sed | Awk | Grep | Find

    1.Sed | Awk | Grep | Find 可以参考的文档链接 CentOS7 查看 当前机器 已经启动的端口的Shell命令: netstat -lntup | awk -F' ' {'pr ...

  4. Sed&awk笔记之sed篇(转)

    Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" strea ...

  5. [svc]linux正则实战(grep/sed/awk)

    企业实战: 过滤ip 过滤出第二行的 192.168.2.11. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine ...

  6. linux三剑客grep|sed|awk实践

    最好先学习正则表达式的基本用法,以及正则表达式BREs,EREs,PREs的区别 此坑待填 grep sed awk

  7. Linux三剑客grep/sed/awk

    grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...

  8. 【转帖】vim/sed/awk/grep等文件批处理总结

    vim/sed/awk/grep等文件批处理总结 https://www.cnblogs.com/cangqiongbingchen/p/9760544.html Vim相关操作 1.基础 * 和 # ...

  9. sed & awk 概述

    概述 一般情况下,从grep到sed和awk的学习过程是很自然的.sed和awk是一般用户.程序员和系统管理员们处理文本文件的有力工具. sed的名字来源于其功能,它是个字符流编辑器(stream e ...

  10. sed awk grep三剑客常用

    sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...

随机推荐

  1. PE病毒初探——向exe注入代码

    PE文件其实就是Windows可执行文件,关于它的一些简要介绍摘自百度: PE文件被称为可移植的执行体是Portable Execute的全称,常见的EXE.DLL.OCX.SYS.COM都是PE文件 ...

  2. 第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6

    第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6 1.检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除,否则第4步 ...

  3. Python爬虫学习——使用selenium和phantomjs爬取js动态加载的网页

    1.安装selenium pip install selenium Collecting selenium Downloading selenium-3.4.1-py2.py3-none-any.wh ...

  4. android 编程之 PopupWindow 窗口的弹出

    PopupWindow 是一个可以显示在当前 Activity 之上的浮动容器,PopupWindow 弹出的位置是能够改变的,按照有无偏移量,可以分为无偏移和有偏移两种:按照参照对象的不同又可以分为 ...

  5. [Hinton] Neural Networks for Machine Learning - Basic

    Link: Neural Networks for Machine Learning - 多伦多大学 Link: Hinton的CSC321课程笔记1 Link: Hinton的CSC321课程笔记2 ...

  6. HttpWatch的Result中出现Aborted的原因分析

    我们在使用HttpWatch进行Web调试的过程中有时候会看到非HTTP Status Code(状态码)的值,例如:(Aborted). (Aborted)是HttpWatch中定义的三种非HTTP ...

  7. mac yarn 安装

    通过HomeBrew安装 brew install yarn 升级yarn brew upgrade yarn 查看版本 yarn -v 1.15.2

  8. 洛谷 P1583魔法照片 & P1051谁拿了最多奖学金 & P1093奖学金

    题目:https://www.luogu.org/problemnew/show/P1583 思路:sort sort sort //#include<bits/stdc++.h> #in ...

  9. hdu4847 Wow!Such Doge!【字符串】【暴力】

    Wow! Such Doge! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  10. ubuntu16.04编译安装imu_tk

    imu_tk代码地址 https://bitbucket.org/alberto_pretto/imu_tk 安装依赖项 sudo apt-get install build-essential cm ...