• Linux三剑客awk之行和列


    一、介绍

    AWK 是一种处理文本文件的语言,是一个强大的文本分析工具,也是一门语言,有自己的数据结构,可以进行过滤、统计、计算、取行取列等操作

    之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符

    wak -F, 'BEGIN{print "name"}{print $2}END{print "end of file"}' oldboy.txt
    wak -F, 'BEGIN{print "name"}NR==2{print $2}END{print "end of file"}' oldboy.txt  # 条件为,行==2
    
    • 1
    • 2

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    二、awk行与列

    awk中名词说明
    记录,record每行默认以回车分割
    字段,域,field每列默认通过空格分割,-F可以指定分隔符
    内置变量说明
    NRNumber of Record,记录号,行号
    NFNumber of Field,域号,列号
    FSField Separator,每个字段的分隔符,-vFS可修改分隔符
    OFSOut Field Separator,每个字段的输出分隔符,默认是空格,-vOFS可修改输出分隔符

    三、awk取行

    awk取行
    NR==1取第一行
    NR>=1 && NR <=5取第1~5行
    /101/,/105/从含有字符串101的行到含有字符串105的行

    在这里插入图片描述

    四、awk取列

    • -F:指定分隔符,默认是空格/连续空格/tab
    • $3:取出第3行,列数从1开始,不从0开始
    • $0:表示一整行
    • $NF:表示最后一列
    • $(NF-1):表示倒数第二列
    awk '{print $1}'
    awk '{print $1,$9}'
    
    • 1
    • 2

    在这里插入图片描述
    在这里插入图片描述

    • 取出整行
    awk 'NR==4{print $0}'
    
    • 1

    在这里插入图片描述

    • 取出/etc/passwd的第一列和最后一列
    awk -F: '{print $1,$NF}' /etc/passwd
    
    • 1

    在这里插入图片描述

    • 使用awk交换/etc/passwd第一列和最后一列的内容

    在这里插入图片描述

    awk -F: '{print $NF,$2,$3,$4,$5,$6,$1}' /etc/passwd
    awk -F: '{print $NF":"$2":"$3":"$4":"$5":"$6":"$1}' /etc/passwd
    awk -vFS=: -vOFS=: '{print $NF,$2,$3,$4,$5,$6,$1}' /etc/passwd
    
    • 1
    • 2
    • 3
    • 取出ip地址
    ip a s ens33 | awk -F"[ /]+" 'NR==4{print $3}'
    ip a s ens33 | awk -vFS="[ /]+" 'NR==4{print $3}'
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    ubuntu18安装caffe(CPU)
    力扣热题100_二叉树_98_验证二叉搜索树
    机器学习笔记之配分函数(二)——随机最大似然
    WebGL笔记:图形转面的原理与实现
    Mac删除不在程序坞的程序
    几个常用的Numpy函数详解
    第一个Spring程序
    Blender程序化建模简明教程【PCG】
    【swagger】springboot项目中配置Swagger的两种方式以及swagger权限验证、安全控制
    音频傅里叶变换(基于开源kissffs)
  • 原文地址:https://blog.csdn.net/qq_42500831/article/details/126360893