shell-awk的BEGIN和END

2023-05-16

文章目录

  • 一、Awk 的两个特殊模式
    • 实例:
  • 二、Awk高级应用
    • 1. if单分支语句
    • 2. if双分支语句
    • 3. for循环
    • 4. while循环

  • SHELL—— awk两个特殊模式(BEGIN 和 END)及awk高级应用(条件判断、循环)

一、Awk 的两个特殊模式

  • BEGIN 和 END,BEGIN 被放置在没有读取任何数据之前
  • END 被放置在所有的数据读取完成以后执行
  • 体现如下:
  • BEGIN{}: 读入第一行文本之前执行的语句,一般用来初始化操作
    {}: 逐行处理
    END{}: 处理完最后以行文本后执行,一般用来处理输出结果

实例:

文件开头加XWPHSA,末尾加XWPHCA ,打印行号和内容

[root@server19 mnt]# awk -F: 'BEGIN {print "XWPHSA"} {print NR;print} END {print "XWPHCA"}'  /etc/passwd 

统计文本总字段个数

[root@server19 mnt]# vim test.txt 
hui hui XX
XX
XX  ni  Xx

[root@server19 mnt]# awk 'BEGIN{i=0}{i+=NF}END{print i}' test.txt 
7 

二、Awk高级应用

1. if单分支语句

统计登录shell为bash的用户

[root@server19 mnt]# awk -F: 'BEGIN{i=0}{if($7~/bash$/){i++}}END{print i}' /etc/passwd
2 
1
2

统计/etc/passwd下uid小于500的用户个数

[root@server19 mnt]# awk -F: 'BEGIN{i=0}{if($3<500){i++}}END{print i}' /etc/passwd
31 
1
2

2. if双分支语句

统计uid小于等于500和大于500的用户个数

[root@server19 mnt]# awk -F: 'BEGIN{i=0;j=0}{if($3<=500){i++}else{j++}}END{print i,j}' /etc/passwd
31 9 

3. for循环

生成1-5序列

[root@server19 mnt]# awk 'BEGIN{for(i=1;i<=5;i++){print i}}'
1
2
3
4
5
```java
[root@server19 mnt]# seq 5    ##seq命令可以直接生成
1
2
3
4
5
1
2
3
4
5
6
7
8
9
10
11
12
13

4. while循环

语法一:

[root@test ~]# awk 'i=1 {} BEGIN {while (i<3) {++i;print i}}' test.txt 
1
2
3

[root@test ~]#

语法二:

[root@test ~]# awk 'BEGIN {do {++i;print i} while (i<3)}' test.txt 
1
2
3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell-awk的BEGIN和END 的相关文章

随机推荐

  • 华为开源自研AI框架昇思MindSpore应用案例:Colorization自动着色

    目录 一 环境准备1 进入ModelArts官网2 使用ModelArts体验实例 二 数据处理数据准备训练集可视化构建网络损失函数 三 模型实现算法流程模型训练模型推理总结 自动着色算法之Colorization 当桃乐丝在1939年的电
  • 华为开源自研AI框架昇思MindSpore应用案例:自动向量化Vmap

    目录 一 环境准备1 进入ModelArts官网2 使用CodeLab体验Notebook实例 二 向量化思维三 手动向量化四 自动向量化高阶函数的嵌套Cell的自动向量化模型集成场景 AI融合计算的蓬勃发展 xff0c 对框架能力提出了新
  • SpringBoot项目 Tomcat部署war程序时启动成功但是访问404异常处理

    目录 一 异常错误二 原因三 解决方法 一 异常错误 Springboot项目 使用IntelliJ IDEA 将maven项目打war包 xff0c pom xml文件中引入了依赖 并通过maven的package打包完后 xff0c 放
  • ROS入门-9.订阅者Subscriber的编程实现

    还是通过海龟仿真器去发布数据 xff0c 要实现一个订阅者来订阅海龟的位置信息等 xff0c publisher是海龟仿真器 xff0c subcriber即为这次我们要实现的程序 数据传输为从publisher传向subscriber 一
  • javascript类型转换(上篇)

    前言 JavaScript中有6种数据类型 xff1a 数字 xff08 number xff09 字符串 xff08 string xff09 布尔值 xff08 boolean xff09 undefined null 对象 xff08
  • Opencv Jetson运行失败

    目录 1 问题 xff1a 2 环境 3 代码 3 怀疑方向 4 方向错误 xff08 新现象 xff09 1 问题 xff1a 在一个大型的项目里面 xff0c 使用了opencv xff0c 且自己编译的时候添加了opencv cuda
  • c与c++的区别

    文章目录 前言c和c 43 43 的区别有很多 xff0c 首先我们需要先搞定c 43 43 xff0c 43 43 的是什么 xff0c 43 43 的是STL库也就是模板库 xff0c 面向对象编程 xff0c 也就是类与对象 xff0
  • 使用Xmanager 7连接centos7远程桌面

    有时候使用命令行在服务器上进行一些操作真的很不方便 xff0c 所以我就想搞个图形界面来解决一些不好操作的事情 一 客户端下载安装Xmanager 7 https www xshellcn com 二 服务器端进行如下操作 1 安装epel
  • MSP430F5529 入门心得

    2021年全国大学生电子设计竞赛因为疫情而推迟了 xff0c 因为电赛里必有一道题目是要使用TI的处理器而之前用习惯了STM32系列处理器没有使用过TI的板子 xff0c 就拿实验室现有的TI的板子MSP4305529LP学习 xff0c
  • 07-输入输出系统

    IO系统基本概念 大纲已删 I O控制方式简介 I O控制器多种多样 xff0c 也会制定相应的标准 xff0c 如 用于控制uSB设备的I O接口 用于控制SATA 3 0硬盘的I O接口等 I O控制器就是一块芯片 xff09 常被集成
  • 哈希算法原理和实现

    哈希算法原理和实现 前言 当我们在编程过程中 xff0c 往往需要对线性表进行查找操作 在顺序表中查找时 xff0c 需要从表头开始 xff0c 依次遍历比较a i 与key的值是否相等 xff0c 直到相等才返回索引i xff1b 在有序
  • Jenkins 安装

    Jenkins 安装 WAR 文件安装 JenkinsWindows 安装 Jenkins 安装 Jenkins启动 jenkins Debian Ubuntu 安装 Jenkins 安装 Jenkins启动 jenkins Redhat
  • MySql错误1251 - Client does not support authentication protocol requested by server 解决方案

    这是一个简单的权限与安全问题 只需要在 MySQL Shell 中输入两行简单的命令就可以解决问题 从安装目录进入mysql xff0c 找到安装目录 xff0c 点击上面的安装目录 xff0c 输入cmd xff0c 回车 xff0c 进
  • 初学Linux Vim时遇到的坑,为什么操作:wq 无法保存和退出

    Vim是Linux常用的文本编辑器 vim的操作 1 输入命令 vi 文件名 xff0c 进入文本编辑页面 2 输入 a 或者 i 可以编辑内容 3 点击Esc 退出命令模式 4 输入 xff1a wq 保存并退出 xff0c 记得别漏了冒
  • 将tensor转换为numpy

    将tensor转换为numpy span class token keyword import span tensor span class token keyword import span numpy span class token
  • OpenStack配置网络并安装且配置控制器节点

    OpenStack配置网络 右击以管理员模式启动 点击编辑 xff0c 选择启动启动虚拟网络编辑器 如上图所示 xff0c 如果出现桥接模式则是操作正确 下面进入虚拟机中 用户名为 xff1a root 密码 xff1a 123456 进入
  • 疑难杂症:Intellig IDEA启动Tomcat,控制台输出中文乱码(2018.3版本亲测可用)

    找到 IntelliJ IDEA 安装目录下bin目录下 xff0c 修改idea exe vmoptions和idea64 exe vmoptions两个文件 xff0c 在最后一行添加 Dfile encoding 61 UTF 8 修
  • 21.通用型1602液晶显示屏操作方法

    第7章通用型1602液晶显示屏操作方法 7 1液晶概述 液晶显示屏的主要原理是以电流刺激液晶分子产生点 线 面并配合背部灯管构成画面 液晶通常是按照显示字符的行数或液晶点阵的行 列数来命名的 xff0c 比如1602的意思是每行显示16个字
  • 外文文献检索网站

    1 Google scholar 网址 xff1a https scholar google com hk hl 61 zh CN 如今搜索论文的首选 xff0c 可以在这里查看论文统计和引用参考文献 xff0c 还能通过关注作者或者论文获
  • shell-awk的BEGIN和END

    文章目录 一 Awk 的两个特殊模式实例 xff1a 二 Awk高级应用1 if单分支语句2 if双分支语句3 for循环4 while循环 SHELL awk两个特殊模式 xff08 BEGIN 和 END xff09 及awk高级应用