前言

awk是linux实际工作中最重要强大的工具,而且还是一门编程语言,可以用来处理数据和生成报告(Excel),处理的数据可以是一个或多个文件。

一>显示出某个范围内的内容

测试文件及内容如下:

[root@192 data]# cat testAwk.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

1>  显示文件中的第五行[root@192 data]# awk 'NR==5' testAwk.txt

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

说明:NR在awk中表示行号(记录号),NR==5表示行号等于5的行。awk后面所接的内容要用单引号。

2>显示文件中第二行到第六行的内容[root@192 data]# awk 'NR==2,NR==6' testAwk.txt

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

3>显示文件中第二行到第六行的内容,并打印行号[root@192 data]# awk 'NR==2,NR==6 {print NR,$0}' testAwk.txt

2 bin:x:1:1:bin:/bin:/sbin/nologin

3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

4 adm:x:3:4:adm:/var/adm:/sbin/nologin

5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

6 sync:x:5:0:sync:/sbin:/bin/sync

说明:print关键字表示显示的内容,相当于是awk内部的一个命令。NR还是表示行号,$0表示一整行的内容。

4>显示文件中的第一列,第三列和最后一列[root@192 data]# awk -F ":" '{print $1,$3,$NF}' testAwk.txt

root 0 /bin/bash

bin 1 /sbin/nologin

daemon 2 /sbin/nologin

adm 3 /sbin/nologin

lp 4 /sbin/nologin

sync 5 /bin/sync

shutdown 6 /sbin/shutdown

halt 7 /sbin/halt

mail 8 /sbin/nologin

operator 11 /sbin/nologin

games 12 /sbin/nologin

ftp 14 /sbin/nologin

nobody 99 /sbin/nologin

说明: A.这里我们使用了awk的-F参数,-F参数表示指定一把“菜刀分隔符”来切割每一行的内容,-F后面可用单引号双引号或不加引号,建议最好使用双引号。

B.使用"$(美元符号)"后面接数字,$1表示第一个部分(第一列),$2(第二列),$3(第三列),依次类推,但是$0表示整行。$NF表示最后一列。

5>把文件中的/sbin/nologin替换为/bin/bash(awk函数功能实践)

[root@192 data]# awk '{gsub("/sbin/nologin","/bin/bash",$0);print $0}' testAwk.txtroot:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/bin/bash

daemon:x:2:2:daemon:/sbin:/bin/bash

adm:x:3:4:adm:/var/adm:/bin/bash

lp:x:4:7:lp:/var/spool/lpd:/bin/bash

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/bin/bash

operator:x:11:0:operator:/root:/bin/bash

games:x:12:100:games:/usr/games:/bin/bash

ftp:x:14:50:FTP User:/var/ftp:/bin/bash

nobody:x:99:99:Nobody:/:/bin/bash

注意:A.gsub与后面的括号之间不能有空格.

B.替换对象,替换成什么内容以及哪一列之间要用逗号分隔开.

C.替换对象的外面要用双引号或者双斜线包裹起来,即"替换对象"

D.替换成什么内容就只能用双引号包裹起来了,即“替换成什么内容”

E.最后一个是哪一列。

awk java_Linux三剑客之awk相关推荐

  1. shell编程系列15--文本处理三剑客之awk格式化输出printf

    shell编程系列15--文本处理三剑客之awk格式化输出printfprintf的格式说明符格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o 打印 ...

  2. Linux三剑客之awk详解

    第一篇 awk简介与表达式实例 一种名字怪异的语言 模式扫描和处理,处理数据和生成报告. awk不仅仅是linux系统中的一个命令,而且是一种编程语言:它可以用来处理数据和生成报告(excel):处理 ...

  3. shell编程系列20--文本处理三剑客之awk常用选项

    shell编程系列20--文本处理三剑客之awk常用选项awk选项总结选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号[root@localhost shel ...

  4. Linux文本三剑客之一——awk详解(1)——awk看这两篇就够啦~PS:文末有练习,来练练手吧

    shell编程三剑客 grep --> egrep --> 文本过滤 查询 awk 文本截取 sed  文本的替换和修改 目录 awk awk也可以做小数运算 awk命令简要处理流程 aw ...

  5. LINUX学习—AWK(LINUX三剑客)

    awk是一个报告生成器,拥有强大的文本格式化能力: 也是一种文本处理工具,但其主要功能是从处理文件中按照输入的信息格式后显示的工具 awk是一种编程语言,支持条件判断.数组.循环等功能.用于在linu ...

  6. Linux系统Shell脚本第五章:shell数组、正则表达式及文件三剑客之AWK

    目录 一.shell数组 1.数组分类 2.定义数组方法 二.正则表达式 1.元字符 2.表示次数 3.位置锚定 4.分组 5.扩展正则表达式 三.文本三剑客之AWK 1.awk 2.使用格式 3.处 ...

  7. 文本三剑客之AWK详解

    文本三剑客之AWK awk简介 AWK是一种优良的文本处理工具.它不仅是 Linux中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人 Alfred A ...

  8. linux三剑客之awk命令详解

    linux三剑客之awk命令详解 awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件.数据排序.计算以及生成报表等等.awk工具主要用于格式化输出,可以用类似于处理表格的方式处理文 ...

  9. 利器 | 测试必会之 Linux 三剑客 ( grep / awk / sed )

    本文为霍格沃兹测试学院优秀学员课程学习系列笔记,想一起系统进阶的同学文末加群交流. Linux 给人的印象是黑乎乎的神秘窗口,文本操作和数据处理似乎没有 Windows 窗口界面直观方便.其实Linu ...

最新文章

  1. 状态保持中的cookie
  2. who,cut,diff,which,whereis,locate,updatedb 命令的使用
  3. webpack.config.js 参数详解
  4. 测试是个艺术活儿:测试需求分工原则
  5. oracle xp安装详细步骤
  6. 经纬度转换为三维坐标
  7. 在服务器上log4net没写日志
  8. Qt中mouseMoveEvent在MainWindow中使用
  9. 阿里云部署flask项目
  10. 计算机专业兴趣小组 名字,最有创意的小组名字及口号(精选70个)
  11. 关于作虚拟软盘启动(转)
  12. 世界上最美的情诗绝句
  13. 非常实用的,国内十大另类行业网址导航站
  14. MySQL查询——为表和字段取别名
  15. 查看计算机屏幕颜色软件,电脑屏幕的颜色的红绿蓝值如何查看?
  16. Android 之路24---Java基础18
  17. 勿以身贵而贱人,勿以独见而违众,勿以辩说为必然
  18. 传输层 TCP 拥塞控制(3):快速重传与快速恢复
  19. 中兴c300业务板_高价回收中兴c300业务板ETGH板卡 原装
  20. P2P--如何让下载的人越多速度越快

热门文章

  1. 《构建之法》课程总结及建议
  2. 我们来说一说TCP神奇的40ms
  3. JavaScript多继承(转载)
  4. 包管理和环境管理软件Anaconda
  5. .NET开发人员必看:提高ASP.NET Web应用性能的24种方法和技巧——转
  6. T-SQL select语句连接两个表
  7. Arcgis for javascript不同的状态下自己定义鼠标样式
  8. UITextView自定义placeholder功能:用一个label写了文字,然后当检测到长度不为0的时候就把label隐藏...
  9. vs 移除项目代码管理
  10. 开源项目的网址[不定时更新]