awk 基础的用法
基本的awk执行过程
#passwd文件的第二行的第一列和第二列
[root@oldboyedu01-nb ~]# awk -F ":" 'NR==2{print $1,$2}' /etc/passwd
bin x
awk 参数 '模式{动作}' 文件
awk 参数 '条件(找谁){干啥}' 文件
模式匹配:模式与动作
通过正则表达式作为模式
mkdir -p /server/files/
cat >>/server/files/reg.txt<<EOF
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175
EOF
显示Xiaoyu的姓氏和ID号码
[root@oldboyedu01-nb files]# awk '/Xiaoyu/' reg.txt
Zhang Xiaoyu 390320151 :155:90:201
[root@oldboyedu01-nb files]# awk '/Xiaoyu/{print $1,$2,$3}' reg.txt
Zhang Xiaoyu 390320151
[root@oldboyedu01-nb files]# #awk '第2列中包含Xiaoyu' reg.txt
[root@oldboyedu01-nb files]# awk '$2~/Xiaoyu/' reg.txt ###显示第二列中包含Xiaoyu的
Zhang Xiaoyu 390320151 :155:90:201
[root@oldboyedu01-nb files]# awk '$2~/Xiaoyu/{print $1,$2,$3}' reg.txt ### 第二列中包含Xiaoyu的行,把第一列,第二列,第三列打印出来
Zhang Xiaoyu 390320151
[root@oldboyedu01-nb files]# awk '/Xiaoyu/' reg.txt
Zhang Xiaoyu 390320151 :155:90:201
[root@oldboyedu01-nb files]# awk '$0~/Xiaoyu/' reg.txt ###$0 表示这一整行
Zhang Xiaoyu 390320151 :155:90:201
[root@oldboyedu01-nb files]# awk '$2~/Xiaoyu/' reg.txt
Zhang Xiaoyu 390320151 :155:90:201
显示所有以41开头的ID号码的人的全名和ID号码
[root@oldboyedu01-nb files]# awk '$3~/^41/' reg.txt
Zhang Dandan 41117397 :250:100:175
Liu Bingbing 41117483 :250:100:175
[root@oldboyedu01-nb files]# awk '$3~/^41/{print $1,$2,$3}' reg.txt
Zhang Dandan 41117397
Liu Bingbing 41117483
显示所有ID号码最后一位数字是1或5的人的全名
[root@oldboyedu01-nb files]# awk '$3~/[15]$/' reg.txt
Zhang Xiaoyu 390320151 :155:90:201
Wu Waiwai 70271111 :250:80:75
Wang Xiaoai 3515064655 :50:95:135
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175
[root@oldboyedu01-nb files]# awk '$3~/[15]$/{print $1,$2}' reg.txt
Zhang Xiaoyu
Wu Waiwai
Wang Xiaoai
Li Youjiu
Lao Nanhai
显示Xiaoyu的捐款.每个值时都有以$开头.如$520$200$135
gsub(/目标/,"替换为什么",第几列)
gsub(/目标/,"替换为什么") == gsub(/目标/,"替换为什么",$0)
awk ‘{gsub(/匹配/,"替换成什么",$4);print}’ filename
[root@oldboyedu01-nb files]# awk '{gsub(/:/,"$",$4)}' reg.txt
[root@oldboyedu01-nb files]# awk '{gsub(/:/,"$",$4);print}' reg.txt ####将第四列的冒号替换为$
Zhang Dandan 41117397 $250$100$175
Zhang Xiaoyu 390320151 $155$90$201
Meng Feixue 80042789 $250$60$50
Wu Waiwai 70271111 $250$80$75
Liu Bingbing 41117483 $250$100$175
Wang Xiaoai 3515064655 $50$95$135
Zi Gege 1986787350 $250$168$200
Li Youjiu 918391635 $175$75$300
Lao Nanhai 918391635 $250$100$175
####
[root@oldboyedu01-nb files]# awk '$2~/Xiaoyu/' reg.txt
Zhang Xiaoyu 390320151 :155:90:201
[root@oldboyedu01-nb files]# awk '$2~/Xiaoyu/{gsub(/:/,"$");print}' reg.txt ####第二列包含小于的行的冒号替换成$
Zhang Xiaoyu 390320151 $155$90$201
[root@jinjidong files]# awk '$2~/Xiaoyu/{gsub(/:/,"$",$4);print}' reg.txt #####第二列包含小于的行的第四列的冒号替换成$
Zhang :Xiaoyu 390320151 $155$90$201
特殊模式BEGIN和END
BEGIN{} BEGIN里面的内容,会在awk读取文件内容之前运行。
测试,计算。
END{}*** END{}里面的内容,会在awk读取完文件的最后一行之后运行。
用来显示最终结果。
先计算,END显示结果。
统计/etc/services文件里面的空行数量
i=i+1 统计
[root@oldboyedu01-nb files]# awk '/^$/{i=i+1;print i}' /etc/services
1
2
3
4
5
6
[root@oldboyedu01-nb files]# awk '/^$/{i=i+1}END{print i}' /etc/services
16
awk 基础的用法的更多相关文章
- awk基础 [马哥视频]
awk基础 1.1 print print的使用格式: print item1,item2, …. 要点: 各项目自己使用逗号隔开,而输出时则以空白字符分隔: 输出的item可以为字符串或者数值,当前 ...
- awk程序设计语言之-awk基础
awk程序设计语言之-awk基础 http://man.linuxde.net/ 常用工具命令之awk命令 awk是一种编程语言,用于在Linux/Unix下对文本和数据处理.数据可以来自标准输入(s ...
- awk 的一些用法
awk,我觉得是Linux里面处理文本最精妙的命令,它是一个行处理的命令,它最初级的用法是:给定一些简单的pattern,然后按照这个pattern 去搜索匹配的行.它的高级用法是用awk来编程,除了 ...
- Shellz中awk的简单用法
其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...
- awk基础学习
2019-12-20 需要巧记,很多格式,学习难度:grep.sed.awk awk知识概述 1三剑客awk命令介绍2三剑客awk命令执行原理语法结构3三剑客awk命令实操练习查询替换信息排除(取反) ...
- awk从放弃到入门(1):awk基础
一.awk简介 awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK 的确拥有自己的语言: AWK ...
- awk的基本用法
最近遇到导入的csv文件首行为日期,但需要将日期作为列导入到数据库中,直接使用ctl文件好像无法实现,了解到awk这个强大的命令. 导入的CSV文件除了首行为日期,其他的都是格式相同的.需要将首行单独 ...
- awk基础01-基本用法
什么是awk awk 是一门解释型的编程语言,支持条件判断,数组.循环等功能.可用于文本处理.输出格式化的文本信息.执行数学运算.字符串等操作. awk在处理文件时按行进行逐行处理,即 ...
- Linux常用基本命令:三剑客命令之-awk基础用法
awk是一个超级强大的文本格式化处理工具,他与grep, sed命令被成为linux 三剑客命令 三剑客命令的特点: grep:只要用来匹配和查找文本 sed: 编辑匹配到文本 awk: 格式化文本, ...
随机推荐
- Codeforces 676E The Last Fight Between Human and AI 规律
链接 Codeforces 676E The Last Fight Between Human and AI 题意 给一个多项式,有些系数不确定.人和机器轮流填系数,系数可以是任何数,问是否能使得最后 ...
- kettle工具的设计模块
大家都知道,每个ETL工具都用不同的名字来区分不同的组成部分.kettle也不例外. 比如,在 Kettle的四大不同环境工具 本博客,是立足于kettle工具的设计模块的概念介绍. 1.转换 转换( ...
- python 3.x 学习笔记10 (析构函数and继承)
1.类变量的用途:大家公用的属性,节省开销(内存) 2.析构函数 在实例释放和销毁的时候执行的,通常用于做一些收尾工作,如关闭一些数据库链接和打开的临时文件 3.私有方法两个下划线开头,声明该方法为私 ...
- MyBatis数据持久化(三)增删改查
上篇文章中我们使用mybatis成功建立数据库会话,并从表中查询出相应的数据,本文在此基础上介绍MyBatis另外几种操作,即插入.修改.删除记录. 1.修改User.xml文件,增加几条sql语句: ...
- MyBatis数据持久化(二)建立数据库会话
上篇文章中介绍了我们使用mybatis前的准备工作,并在程序中通过jdbc与mysql数据库成功建立连接,接下来介绍如何使用mybatis与数据库建立会话.我们需要以下几个步骤: 1.在build p ...
- 使用Mapping实现的以太坊智能合约的代码
Step 1: 创建一个基础合约 pragma solidity ^0.4.7; contract Coin { address public minter; mapping (address =&g ...
- ZBrush中常用3D笔触效果
3D笔触共有6种绘制方式,分别为Dots(点).Drag Rect(拖拉矩形).Freehand(徒手绘制).Color Spray(彩色喷溅).Spray(喷溅)和Drag Dot(拖拽斑点). 1 ...
- POJ 1198 / HDU 1401 Solitaire (记忆化搜索+meet in middle)
题目大意:给你一个8*8的棋盘,上面有四个棋子,给你一个初始排布,一个目标排布,每次移动,可以把一个棋子移动到一个相邻的空位,或者跨过1个相邻的棋子,在保证棋子移动不超过8次的情况下,问能否把棋盘上的 ...
- tf.slice()解释
转载:https://www.jianshu.com/p/71e6ef6c121b def slice(input_, begin, size, name=None): 其中“input_”是你输入的 ...
- 关于bom ef+bb+bf的问题
今天在商品详细页头部出现了一行空白,各种尝试无果,最后怀疑是不是bom头的问题,经过断点跟踪调试逐步缩小范围,果然最后发现是一个语言包文件的开头有 ef bb bf样式的字节,用ultraedit另存 ...