shell-awk的BEGIN和END
文章目录
- 一、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
shell-awk的BEGIN和END相关推荐
- shell awk 的一些用法
#1.打印挂载目录的使用量,默认以空格为分割 df -Ph | awk '{ print $5,$6 }' #2.以空格.冒号.\t.分号为分割 awk -F '[ :\t;]' '{print $1 ...
- Shell awk文本处理,shell脚本编写
Shell awk文本处理,shell脚本编写 一:内容包含awk.变量.运算符.if多分支 <a>语法糖: awk [options] 'commands' files option - ...
- linux shell awk 语法
引用:http://blog.csdn.net/weekly123/article/details/1465675 inux shell awk 语法 Awk 是一种非常好的语言,同时有一个非 ...
- linux shell awk用法
Awk 是一种非常好的语言,同时有一个非常奇怪的名称.在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧.随着本系列的进展,将讨论更高级的主题,最后将 ...
- shell awk命令
语法: awk '{command}' filename 多个命令以分号分隔. awk 'BEGIN {command1} {command2} END{command3}' 注意:BEGIN , ...
- linux awk拼接字符串,shell awk命令字符串拼接
摘要 腾兴网为您分享:shell awk命令字符串拼接,智联招聘,心视界,同花顺,手机管家等软件知识,以及一师一优课一课一名师登录,去视频水印,防沉迷解除,兼职猫招聘网,c4d渲染插件,社会实践活动登 ...
- shell awk命令详解
shell awk命令详解 awk原理 格式 实操 相关内建变量 简易需求 进阶操作 高阶操作 awk原理 逐行读取文本,默认时以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中, ...
- Linux 抓取网页实例(shell+awk)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 上一篇博 ...
- linux shell awk BEGIN END 处理文本之前之后执行操作 简介
目录 简介 1 最简单的action 既没有pattern 有没有options 2 awk是逐行处理 2.1 输出整行 2.2 输出最后一列 2.3 输出倒数第二列 3 pattern 3.1 be ...
- shell awk sed tr grep 语法汇总
原文地址:http://www.cnblogs.com/wajika/p/6374043.html tr 基本语法 -c # 用字符串1中字符集的补集替换此字符集,要求字符集为ASC ...
最新文章
- WCF 基础之契约(Contract)[转]
- dubbo集群和负载均衡
- 【Python】find()函数居然还能指定搜索的起点和终点?
- Git之回退已经提交到远程仓库的代码(已经push的代码)
- 使用NSOperation为你的app加速
- STAR直接就可以输出readsCount,为什么还需要featurecounts?
- #9 case while until select语句的运用与例子
- iscsi多路径配置方式
- 围棋人机大战属于计算机在什么方面的应用,人民日报评围棋人机大战:胜出的是我们自己...
- CMYK与RGB颜色区别
- springboot基于微信小程序的在线考试系统
- Msql特定业务之自增业务表,适用于根据表去分类管理业务数据
- Add-Migration
- 邮件发送错了怎么办?TOM VIP邮箱如何撤回邮件
- Linux性能测试工具之Disk(四)
- Pytorch | 学习笔记(二)
- 【解析】心田上的百合花开——心田花开
- 如何批量将png格式改成jpg?
- Android 在Canvas中实现画笔效果(一)--钢笔
- 几种Linux备份方法