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: 格式化文本, ...
随机推荐
- HD-ACM算法专攻系列(5)——N!
题目描述: 源码: #include"iostream" using namespace std; int main() { int n, digit, carry, tmp; i ...
- spm总体说明
目录 1.如何工作 2.何时使用 1.如何工作 sql plan baseline 是一个关联sql 语句的对象,设计会影响查询优化器生成执行计划,更具体的说,一个sql baseline包含其中的一 ...
- JQuery插件的写法 (转:太棒啦!)
JQuery插件写法的总结 最近Web应用程序中越来越多地用到了JQuery等Web前端技术.这些技术框架有效地改善了用户的操作体验,同时也提高了开发人员构造丰富客户 端UI的效率.JQuery本身提 ...
- js判断数据类型方法
//一般js中我们判断数据类型 都使用typeof 这里采用 Object.prototype.toString function type (val) { return Object.prototy ...
- SpringBoot 获取客户端 ip
/** * 获取客户端ip地址 * @param request * @return */ public static String getCliectIp(HttpServletRequest re ...
- FastDFS图片服务器搭建
*FastDFS图片服务器搭建准备:1.需要libfastcommon安装包 选择最新稳定版(libfastcommon-1.0.36.tar.gz)2.需要FastDFS安装包 选择最新稳定版(fa ...
- 紫书 习题 11-7 UVa 10801 (单源最短路变形)
把每个电梯口看作一个节点, 然后计算边的权值的时候处理一下, 就ok了. #include<cstdio> #include<vector> #include<queue ...
- 平凡主丛上的Yang-Mills理论
本文是复旦大学由丁青教授的暑期课程“Yang-Mills理论的几何及其应用”所作笔记,会有少许修正. 所需基础: 多元微积分学 微分方程(常微分方程,数学物理方程) 曲线曲面论(初等微分几何) 以下是 ...
- python 退出程序的执行
使用sys.exit()退出当前程序的执行 import sys if x==0: sys.exit()
- nginx proxy_set_header设置,自定义header
在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了ng ...