awk是基于列的文本处理工具,所有的文件都是由单词和各种空白字符组成。这里"空白字符"包括空格、tab以及连续的空格和tab,每个非空白的部分叫做"域",从左到右依次是第一个域、第二个域,$1、$2分别用于表示域,$0则表示全部域

1.打印列
打印第一列和第四列
[root@localhost ~]# awk '{print $1,$4}' awk1
john.wang 021-11111111
lucy.yang 25021-22222222
jack.chen 021-33333333
lily.gong 021-44444444

打印全部列
[root@localhost ~]# awk '{print $0}' awk1
john.wang male 30 021-11111111
lucy.yang female 25 25021-22222222
jack.chen male 35 021-33333333
lily.gong female 20 021-44444444 ShangHai

-F指定分隔符,默认情况下是空白字符作为分隔符
以点作为分隔符
[root@localhost ~]# awk -F. '{print $1,$2}' awk1
john wang male 30 021-11111111
lucy yang female 25 25021-22222222
jack chen male 35 021-33333333
lily gong female 20 021-44444444 ShangHai

2.内部变量NF
上面的例子中,由于文件内容比较少,我们一眼就知道有多少行,每一行有多少列。但是如果遇到文件内容很多的,每一行数据的列都不一样,就需要通过特定的方式来获得文件的列数。

默认是以空白符分隔,查看每行有多少列
[root@localhost ~]# awk '{print NF}' awk1
4
4
4
5

指定分隔符,查看每行有多少列
[root@localhost ~]# awk -F. '{print NF}' awk1
2
2
2
2

3.打印固定列
打印最后一列,$NF是打印最后一列,这个是绝对的
[root@localhost ~]# awk '{print $NF}' awk1
021-11111111
25021-22222222
021-33333333
ShangHai

打印倒数第二列
[root@localhost ~]# awk '{print $(NF-1)}' awk1
30
25
35
021-44444444

4.截取字符串
可以适用substr()函数对指定域截取字符串,该函数的基本适用方法如下:
substr(指定列,第一个开始字符的位置,第二个结束的位置),第二个结束的位置可以为空,这样默认输出到该列的最后一个字符

打印awk1文件第一列的第六个字符到最后一个字符的内容:
[root@localhost ~]# awk '{print substr($1,6)}' awk1
wang
yang
chen
gong

5.确定字符串的长度
使用内部变量length可以确定字符串的长度,示例如下:
[root@localhost ~]# awk '{print length}' awk1
30
34
30
41

6.使用awk求列和
求年龄的和
[root@localhost ~]# awk 'BEGIN{total=0}{total+=$3}END{print total}' awk1
110

求平均年龄
[root@localhost ~]# awk 'BEGIN{total=0}{total+=$3}END{print total/NR}' awk1
27.5

风情万种awk的更多相关文章

  1. awk命令简介

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  2. awk使用说明

    原文地址:http://www.cnblogs.com/verrion/p/awk_usage.html Awk使用说明 运维必须掌握的三剑客工具:grep(文件内容过滤器),sed(数据流处理器), ...

  3. awk应用

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  4. 3.awk数组详解及企业实战案例

    awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...

  5. shell——awk

    awk -F"分隔符" "command" filename awk -F":" '{print $1}' /etc/passwd 字段引用 ...

  6. 【Linux】AWK入门

    什么是AWK AWK是一种用于处理文本的编程语言工具,一个模式匹配程序.一个典型的示例是将数据转换成格式化的报告. 在命令行输入如下awk命令: awk -F":" '{ prin ...

  7. 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od

    awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk ''  | output 1.首先要知道形式 awk 'command' fi ...

  8. sed awk grep三剑客常用

    sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...

  9. awk命令速查

    awk与sed.grep一样都是为了加工数据流而做成的文本加工过滤器命令.awk会事先把输入的数据根据字段单位进行分割.在没有制定分割单位的情况下,以输入数据中的空格或Tab为分隔符.与sed相比,它 ...

随机推荐

  1. AppWidget学习总结

    AppWidget学习总结 一.创建AppWidget.    1.在res/xml下创建一个xml文件,以设置widget占用的空间等信息.如widget_provider.xml        & ...

  2. bzoj 相似回文串 3350 3103 弦图染色+manacher

    相似回文串 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 143  Solved: 68[Submit][Status][Discuss] Descr ...

  3. HDU 2686 / NYOJ 61 DP

    传纸条(一) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行 ...

  4. Django1.5 自定义用户模型(总结)

    Django系统有自带的超级棒的认证机制,但是默认的用户模型有一点捉急,为了自定义用户模型,看了很多相关的文章,这里做一个总结: 你可以先看一下这篇,对Django的用户模型有一个比较全的了解: 来自 ...

  5. swiper 、css3制作移动端网站,折叠导航

    swiper .css3制作移动端网站,折叠导航 前几天公司要更新改版移动端的官网,由于网站本身没有多少内容,所以设计师就做成了整屏滑动的样子,起初我并没有看设计稿就一口答应了,拿到手后发现了几个问题 ...

  6. maven中jar包的maven地址查询

    在网站 https://mvnrepository.com/ 中查找.

  7. mybatis在Mapper的xml文件中的转义字符的处理

    XML转义字符 < < 小于号 > > 大于号 & & 和 &apos; ’ 单引号 " " 双引号 用转义字符进行替换 例如 SE ...

  8. 洛谷P2901 [USACO08MAR]牛慢跑Cow Jogging

    题目描述 Bessie has taken heed of the evils of sloth and has decided to get fit by jogging from the barn ...

  9. Gradle编译时下载依赖失败解决方法

    如果Gradle在编译的时候没有在本地仓库中发现依赖,就会从远程仓库中下载,默认的远程仓库为mavenCentral(),也就是http://repo1.maven.org/maven2/,但是往往访 ...

  10. 【HNOI】 小A的树 tree-dp

    [题目描述]给定一颗树,每个点有各自的权值,任意选取两个点,要求算出这两个点路径上所有点的and,or,xor的期望值. [数据范围]n<=10^5 首先期望可以转化为求树上所有点对的and,o ...