linux命令之awk(gawk)
目录
- linux程序之awk(gakw)
- gawk基础
- 1) gawk程序的基本格式
- 2) 从命令行读取程序脚本
- 3) 使用数据字段变量
- 4) 在程序脚本中使用多个命令
- 5) 从文件中读取程序
- 6) 在处理数据前后运行脚本
linux程序之awk(gakw)
gawk程序是Unix中的原始awk程序的GNU版本,gawk程序让流编辑迈上了一个新台阶,他提供了一种编程语言而不只是编辑命令.
gawk可以做的事:
1.定义变量来保存数据
2.使用算术和字符串操作符来处理数据
3.使用结构化编程概念(if-then语句和循环)来为数据处理增加处理逻辑;
通过提取数据文件中的数据元素,将其重新排列格式化,生成格式化报告
gawk基础
1) gawk程序的基本格式
gawk options program file
选项
-F fs 指定行中划分数据字段的字段分隔符
-f file 从指定的文件中读取程序
-v var=value 定义gawk程序中一个变量及其默认值
-mf N 指定要处理的数据文件中的最大字段数
-mr N 指定要处理的数据文件中的最大数据行
-W keyword 指定gawk的兼容模式或警告等级
2) 从命令行读取程序脚本
gawk程序脚本用一对花括号来定义.
gawk '{print "hello world!"}' # 输入后什么都不会输出,应为没有指定文件名,如果你输入一行文本并按下回车,gawk会对这行文本运行一遍程序脚本,进而打印.
# hello world!
3) 使用数据字段变量
gawk的主要特性之一是其处理文本文件中数据的能力.他会自动给一行中的每个数据元素分配一个变量.
默认情况下:
$0 代表整个文本行
$1 代表文本行中的第1个数据字段
$2 代表文本行中的第2个数据字段
$n 代表文本行中的第n个数据字段
示例:
data.txt
this is line 1
this is line 2
this is line 3
this is line 4
this is line 5
gawk '{print $1}' data.txt
# 输出
this
this
this
this
this
如果要读取其他字段分隔符的文件,可以使用-F指定
gawk -F ':' '{print $1,$2}' /etc/passwd# 输出
root x
bin x
daemon x
adm x
lp x
sync x
shutdown x
halt x
mail x
operator x
games x
ftp x
nobody x
systemd-network x
dbus x
polkitd x
sshd x
postfix x
chrony x
ntp x
tcpdump x
nscd x
mysql x
4) 在程序脚本中使用多个命令
多个命令之间使用分号(;)分割.使用次提示符一次一行输入程序可以不用(>)
echo "my name is wyh" | gawk '{$4="wang"; print $0}'
# my name is wang
5) 从文件中读取程序
跟sed一样,gwak编辑器可以允许将程序存储到文件中,然后再在命令行中引用
scripts.gawk
{print $1 "'s home directory is " $6}
gawk -F ':' -f script.gawk /etc/passwd------输出
root's home directory is /root
bin's home directory is /bin
daemon's home directory is /sbin
adm's home directory is /var/adm
lp's home directory is /var/spool/lpd
sync's home directory is /sbin
shutdown's home directory is /sbin
halt's home directory is /sbin
mail's home directory is /var/spool/mail
operator's home directory is /root
games's home directory is /usr/games
ftp's home directory is /var/ftp
nobody's home directory is /
systemd-network's home directory is /
dbus's home directory is /
polkitd's home directory is /
sshd's home directory is /var/empty/sshd
postfix's home directory is /var/spool/postfix
chrony's home directory is /var/lib/chrony
ntp's home directory is /etc/ntp
tcpdump's home directory is /
nscd's home directory is /
mysql's home directory is /var/lib/mysql
可以在程序文件中指定多条命令,每条命令放一行,不需要分号,否则需要.
在程序中定义变量,赋值即定义,引用直接使用变量名
script3.gawk
{test ="'s home directory is"
print $1 text $6
}
6) 在处理数据前后运行脚本
gawk 'BEGIN {print "Start of file"}; {print $0}; END { print "End of file"}' data.txt----------输出
Start of file
this is line 1
this is line 2
this is line 3
this is line 4
this is line 5
End of file
linux命令之awk(gawk)相关推荐
- linux命令之awk终极系列
一.awk功能特点 awk是一个非常重要的命令或者认为是一种语言.因为他可以做数学运算,流程控制语句,流控制,还有样式装入的功能.反正是非常强大.awk是三位创建者编写的.把awk定义为:样式扫描处理 ...
- Linux 命令 wc / awk
WC:可以计算文件的Byte数.字数.或是列数 AWK:一种处理文本文件的语言,是一个强大的文本分析工具 1.查找.过滤当前文件夹 wc -l * 2.查找.过滤当前文件夹只有一行数据的文件,并显示文 ...
- linux命令之awk命令
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linu ...
- linux分配端口未抢占端口,Linux命令之awk:基础知识(一)
语法形式: awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s) 常用选项: - ...
- Linux命令之awk:高级输入输出(四)
2019独角兽企业重金招聘Python工程师标准>>> 1.awk输出匹配行的上下行 输出匹配行的上一行语句 awk '/匹配/{print a}{a=$0}' [原理分析]: 这个 ...
- linux命令之awk
文本处理命令 把前10行打印出来 . 打印20到30行
- Linux 命令(36)—— awk 命令
1.命令简介 AWK 是文本处理语言,是一个强大的文本分析工具,是 Unix/Linux 环境中功能强大的数据处理引擎之一.数据可以来自标准输入(stdin).一个或多个文件或其它命令的输出.它支持用 ...
- linux中top工具,Linux命令工具 top详解
Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...
- linux xxx命令,linux命令ps aux|grep xxx详解
对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令. 使用该命令 可以确定有哪些进程正在运 ...
最新文章
- 云计算:存储之后,IT江湖之上的新大佬
- 谷歌Colab也搞“超级会员”,普通会员云GPU被降级,想用高端得加钱
- matlab中fdyn,Matlab的用法总结
- 有关网页抓取问题的一些经验总结 - passover【毕成功的博客】 - 51CTO技术博客
- python 多进程绑定端口_Python教程之创建多进程
- 几个不错的自己到的少的游戏站
- 【IT资讯】年薪170万码农征友,条件让网友炸锅……
- asp.net(c#)网页跳转七种方法小结
- AntiXSS v4.0中Sanitizer.GetSafeHtmlFragment等方法将部分汉字编码为乱码的解决方案
- SQLi LABS Less 26a 联合注入+布尔盲注
- [转]malloc的内存用free释放后为何系统回收不了
- 6种 分布式限流方案,我替你整理好了
- 用python进行文本分析_用Python分析文本文件
- android wifi直连共享文件,让Android支持AD-hoc方式连WIFI(笔记本直接用WIFI共享给手机)的方法...
- 评价模型——层次分析法
- 计算机游戏软件视频,电脑录制游戏视频软件哪个好,电脑游戏录制软件排行
- 用自己的电脑搭建Web服务器建网站
- 【软件工程导论】软件工程导论笔记
- Xcode6中如何添加pch文件
- 博通wifi 芯片配置工具wl 详解
热门文章
- 使用python简单的抓取网络小说
- 一文带你全面解析 Postman 工具的使用
- Vim修改vimrc一键编译运行后出现请按 ENTER 或其它命令继续
- Codeforces Round #566 (Div. 2)-E. Product Oriented Recurrence
- 基于采样的规划算法之RRT家族(四):Informed RRT*
- python爬虫之爬取百度翻译
- 动态设置video的宽高的方法,js设置和CSS设置
- 引导修复第一类:关于Windows的引导修复
- 计算机的历史——到底谁是第一台计算机?
- 【易通慧谷】全渠道趋势下的建材家居供应链变革