awk java_Linux三剑客之awk
前言
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相关推荐
- shell编程系列15--文本处理三剑客之awk格式化输出printf
shell编程系列15--文本处理三剑客之awk格式化输出printfprintf的格式说明符格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o 打印 ...
- Linux三剑客之awk详解
第一篇 awk简介与表达式实例 一种名字怪异的语言 模式扫描和处理,处理数据和生成报告. awk不仅仅是linux系统中的一个命令,而且是一种编程语言:它可以用来处理数据和生成报告(excel):处理 ...
- shell编程系列20--文本处理三剑客之awk常用选项
shell编程系列20--文本处理三剑客之awk常用选项awk选项总结选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号[root@localhost shel ...
- Linux文本三剑客之一——awk详解(1)——awk看这两篇就够啦~PS:文末有练习,来练练手吧
shell编程三剑客 grep --> egrep --> 文本过滤 查询 awk 文本截取 sed 文本的替换和修改 目录 awk awk也可以做小数运算 awk命令简要处理流程 aw ...
- LINUX学习—AWK(LINUX三剑客)
awk是一个报告生成器,拥有强大的文本格式化能力: 也是一种文本处理工具,但其主要功能是从处理文件中按照输入的信息格式后显示的工具 awk是一种编程语言,支持条件判断.数组.循环等功能.用于在linu ...
- Linux系统Shell脚本第五章:shell数组、正则表达式及文件三剑客之AWK
目录 一.shell数组 1.数组分类 2.定义数组方法 二.正则表达式 1.元字符 2.表示次数 3.位置锚定 4.分组 5.扩展正则表达式 三.文本三剑客之AWK 1.awk 2.使用格式 3.处 ...
- 文本三剑客之AWK详解
文本三剑客之AWK awk简介 AWK是一种优良的文本处理工具.它不仅是 Linux中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及数据操作语言(其名称得自于它的创始人 Alfred A ...
- linux三剑客之awk命令详解
linux三剑客之awk命令详解 awk 是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件.数据排序.计算以及生成报表等等.awk工具主要用于格式化输出,可以用类似于处理表格的方式处理文 ...
- 利器 | 测试必会之 Linux 三剑客 ( grep / awk / sed )
本文为霍格沃兹测试学院优秀学员课程学习系列笔记,想一起系统进阶的同学文末加群交流. Linux 给人的印象是黑乎乎的神秘窗口,文本操作和数据处理似乎没有 Windows 窗口界面直观方便.其实Linu ...
最新文章
- 状态保持中的cookie
- who,cut,diff,which,whereis,locate,updatedb 命令的使用
- webpack.config.js 参数详解
- 测试是个艺术活儿:测试需求分工原则
- oracle xp安装详细步骤
- 经纬度转换为三维坐标
- 在服务器上log4net没写日志
- Qt中mouseMoveEvent在MainWindow中使用
- 阿里云部署flask项目
- 计算机专业兴趣小组 名字,最有创意的小组名字及口号(精选70个)
- 关于作虚拟软盘启动(转)
- 世界上最美的情诗绝句
- 非常实用的,国内十大另类行业网址导航站
- MySQL查询——为表和字段取别名
- 查看计算机屏幕颜色软件,电脑屏幕的颜色的红绿蓝值如何查看?
- Android 之路24---Java基础18
- 勿以身贵而贱人,勿以独见而违众,勿以辩说为必然
- 传输层 TCP 拥塞控制(3):快速重传与快速恢复
- 中兴c300业务板_高价回收中兴c300业务板ETGH板卡 原装
- P2P--如何让下载的人越多速度越快
热门文章
- 《构建之法》课程总结及建议
- 我们来说一说TCP神奇的40ms
- JavaScript多继承(转载)
- 包管理和环境管理软件Anaconda
- .NET开发人员必看:提高ASP.NET Web应用性能的24种方法和技巧——转
- T-SQL select语句连接两个表
- Arcgis for javascript不同的状态下自己定义鼠标样式
- UITextView自定义placeholder功能:用一个label写了文字,然后当检测到长度不为0的时候就把label隐藏...
- vs 移除项目代码管理
- 开源项目的网址[不定时更新]