当前位置: 首页 > news >正文

网络安全 Day13-Linux三剑客awk知识

Linux三剑客awk知识

  • 1. awk 介绍
  • 2. awk 语法
  • 3. 练习

1. awk 介绍

  • awk 是一门语言, 也是一个命令,
  • Linux 有三剑客命令: grep/sed/awk
  • 三剑客的特长
    • grep 过滤内容
    • sed 取行
    • awk 取列

2. awk 语法

  • 取列
    • 取第一列文件($1): awk '{print $1} 文件'
    • 指定分隔符为文件: awk -F "指定的分隔符" 文件
    • 指定多分隔符: awk -F "[/@ #]+" '{print $1,$2}' 文件
  • 取行: awk NR==2 oldboy.txt
  • 过滤: awk '/过滤的内容/' 文件

3. 练习

  • 准备:创建一个文件, 并在只其中追加内容

    [root@oldboyedu ~] echo "oldboy oldgirl" >>oldboy.txt
    [root@oldboyedu ~] echo "oldboy oldgirl" >>oldboy.txt
    [root@oldboyedu ~] cat oldboy.txt
    oldboy oldgirl
    oldboy oldgirl
    
  • 普通取列

    • 取第一列
      [root@oldboyedu ~] awk '{print $1}' oldboy.txt 
      oldboy
      oldboy
      
    • 取整行(搭配着grep可能更好用)
      [root@oldboyedu ~]# awk '{print $0}' oldboy.txt 
      oldboy oldgirl
      oldboy oldgirl
      
  • 指定分隔符取列(-F)

    • 取/etc/passwd的第1列: awk -F ":" '{print $1}' /etc/passwd
    • 取/etc/passwd的第2列: awk -F ":" '{print $2}' /etc/passwd
    • 取/etc/passwd的尾列: awk -F ":" '{print $NF}' /etc/passwd
    • 取/etc/passwd的倒数第2列: awk -F ":" '{print $(NF-1)}' /etc/passwd
  • 同时输出多列

    • 取/etc/passwd的第1列和第2列: awk -F ":" '{print $1,$2}' /etc/passwd
    • 取/etc/passwd的第1列、第3列和最后一列: awk -F ":" '{print $1,$3,$NF}' /etc/passwd
  • 综合练习

    • 从ip a或ifconfig结果中取出Ip地址 p a|grep '10.0.0'|awk '{print $2}'|awk -F/ '{print $1}'或者ifconfig eth0|grep '10.0.0'|awk '{print $2}'
    • 从ip a结果中取出Ip地址: ip a|awk -F "[ /]+" 'NR==9{print $3}'
    • 取出stat /etc/hosts中的0644: stat /etc/hosts|awk -F "[(/]" 'NR==4{print $2}'
  • 准备

    [root@oldboyedu ~] seq 5 >oldboy.txt 
    [root@oldboyedu ~] cat oldboy.txt
    1
    2
    3
    4
    5
    
  • 取行练习

    • 取第二行: awk NR==2 oldboy.txt
    • 取第2-4行: awk NR==2,NR==4 oldboy.txtawk 'NR>1&&NR<5' oldboy.txtawk 'NR>=2&&NR<=4' oldboy.txt
http://www.lryc.cn/news/110499.html

相关文章:

  • java讲解Spring Boot配置文件级别 相互覆盖关系 解决一方不愿意给数据库密码 一方不愿意给源码时 数据库配置问题
  • 点击表格行高亮
  • 基于粒子群优化算法的配电网光伏储能双层优化配置模型[IEEE33节点](选址定容)(Matlab代码实现)
  • 零代码爬虫平台SpiderFlow的安装
  • Java 与其他编程语言:比较分析
  • Linux性能分析工具介绍(二)--内存、进程、磁盘、IO分析
  • 海外热门地区/国家常见主体证件示例
  • 【阵列信号处理】空间匹配滤波器、锥形/非锥形最佳波束成形器、样本矩阵反演 (SMI) 研究(Matlab代码实现)
  • 使用MPU6050计算方向盘角度
  • 区块链实验室(13) - 在PBFT中节点的度与其流量的特征
  • C++——文件操作
  • channel通道笔记
  • 无涯教程-Lua - 面向对象
  • Java中的IOUtils是什么?
  • 电源板(220V转3.3V)调试问题总
  • 【webpack】一些零碎的知识点记录:eslint配置、source-map配置、devServer配置
  • VUE之JWT前后端分离认证,学生管理系统
  • Go学习第五天
  • 在vue项目中封装WebSockets请求
  • Linux进程(二)
  • 使用pg_prewarm缓存PostgreSQL数据库表
  • LeetCode 28题:找出字符串中第一个匹配项的下标
  • flink+kafka+doris+springboot集成例子
  • ARM裸机-14(S5PV210的时钟系统)
  • Milvus Cloud凭借AI原生,可视化优势荣登全球向量数据库性能排行榜VectorDBBench.com 榜首
  • 测试岗?从功能测试进阶自动化测试开发,测试之路不迷茫...
  • 算法与数据结构(五)--树【1】树与二叉树是什么
  • 打开的idea项目maven不生效
  • kvm+qemu+libvirt管理虚机
  • 电气防火限流式保护器在汽车充电桩使用上的作用