百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

awk命令详解(awk命令详解条件语句)

toqiye 2024-10-01 22:55 1 浏览 0 评论

awk 命令安装:


-bash/zsh: awk command not found #Debianapt-get install gawk #Ubuntuapt-get install gawk #Alpineapk add gawk #Arch Linuxpacman -S gawk #Kali Linuxapt-get install gawk #CentOSyum install gawk #Fedoradnf install gawk #OS Xbrew install awk #Raspbianapt-get install gawk #Dockerdocker run cmd.cat/awk awk

awk 命令说明:


awk 命令补充说明:


AWK 是另一种流行的流编辑器,类似于 SED。 awk 的基本功能是在文件中搜索包含一种或多种模式的行或其他文本单元。 当一行与其中一个模式匹配时,会对该行执行特殊操作。

有几种方法可以运行 awk。 如果程序很短,最简单的方法是在命令行上运行它:

awk PROGRAM inputfile(s)

如果必须对多个文件进行多次更改,可能定期对多个文件进行更改,则将 awk 命令放在脚本中会更容易。 这是这样读的:

awk -f PROGRAM-FILE inputfile(s)

awk 中最常用的程序是 print,我们很快就会看到。awk 中的打印命令从输入文件中输出选定的数据。变量 $1, $2, $3, ..., $N 保存输入行的第一个、第二个、第三个直到最后一个字段的值。 变量 $0(零)保存整行的值。

如上图:要打印大小 $2 和使用% $5,请使用 df -h | awk '{print $2,$5}'注意$2,$5:它们之间的 , 将用 空格 分隔输出。

$ df -h | awk '{print $2,$5}' -------------------Size Use%40G 25%7.8G 0%7.8G 0%7.8G 1%7.8G 0%1000G 12%1.6G 0%1.6G 0%

awk 命令语法:


awk [-F sepstring] [-v assignment]... program [argument...] awk [-F sepstring] -f progfile [-f progfile]... [-v assignment]...[argument...]

awk 命令选项:


-F sepstring                 Define the input field separator. This option shall be                 equivalent to: -v FS=sepstring                  except that if -F sepstring and -v FS=sepstring are                 both used, it is unspecified whether the FS assignment                 resulting from -F sepstring is processed in command                 line order or is processed after the last -v                 FS=sepstring.  See the description of the FS built-in                 variable, and how it is used, in the EXTENDED                 DESCRIPTION section. -f progfile                 Specify the pathname of the file progfile containing an                 awk program. A pathname of '-' shall denote the                 standard input. If multiple instances of this option                 are specified, the concatenation of the files specified                 as progfile in the order specified shall be the awk                 program. The awk program can alternatively be specified                 in the command line as a single argument. -v assignment                 The application shall ensure that the assignment                 argument is in the same form as an assignment operand.                 The specified variable assignment shall occur prior to                 executing the awk program, including the actions                 associated with BEGIN patterns (if any). Multiple                 occurrences of this option can be specified.

awk 命令实例:


awk 在空格分隔的文件中打印第五列(又名字段):

awk '{print $5}' filename

awk 在空格分隔的文件中打印包含“某物”的行的第二列:

awk '/something/ {print $2}' filename

awk 打印文件中每一行的最后一列,使用逗号(而不是空格)作为字段分隔符:

awk -F ',' '{print $NF}' filename

awk 对文件第一列中的值求和并打印总数:

awk '{s+=$1} END {print s}' filename

awk 对第一列中的值求和并漂亮地打印这些值,然后是总数:

awk '{s+=$1; print $1} END {print "--------"; print s}' filename

awk 从第一行开始每三行打印一次:

awk 'NR%3==1' filename

awk Formatting 格式化字段输出:

$ df -h | sort -rnk 5 | head -3 | awk '{ print "Partition " $6 "\t: " $5 " full!" }' Partition /mnt/sdb6    : 99% full!Partition /mnt/sdb5    : 97% full!Partition /home    : 89% full!

awk / gawk 字符串格式化:


Sequence

含义

\a

Bell character

\n

Newline character

\t

Tab

awk 打印命令和正则表达式,例如,从 /etc 目录列出以字母 ac 开头并以 .conf 结尾的文件并打印第 9 个字段:

$ ls -l /etc/ | awk '/\<(a|c).*\.conf$/ { print $9 }' adduser.confapg.confca-certificates.confcasper.confresolv.conf

awk 脚本方式,我们使用 BEGINEND,正则表达式配置到 test.awk 中,然后运行:

BEGIN { print "*** WARNING WARNING WARNING ***" }/\<[8|9][0-9]%/ { print "Partition " $6 "\t: " $5 " full!" }END { print "*** Give money for new disks URGENTLY! ***" }  $ df -h | awk -f test.awk  *** WARNING WARNING WARNING ***Partition /    : 89% full!Partition /mnt/sdb5    : 97% full!Partition /mnt/sdb6    : 99% full!Partition /home    : 89% full!*** Give money for new disks URGENTLY! ***

awk 的 RSORSFSOFSNRNF

RS:Record Separator,记录分隔符 ORS:Output Record Separate,输出当前记录分隔符 FS:Field Separator,字段分隔符 OFS:Out of Field Separator,输出字段分隔符 NR:Number of Records 当前行数 NF:Number of Fields 字段数量

假设 test.txt 文件有 100 行,awk 只取第 20 到第 30 行内容:

awk '{if(NR>=20 && NR<=30) print $1}' test.txt

相关推荐

完美解决MAC电脑空间不足问题(完美解决mac电脑空间不足问题的办法)

很多用MAC(苹果笔记本)电脑的人,特别是做iOS开发的,都会遇到一个头疼的问题,那就是电脑磁盘空间不足的问题。这个问题也困扰了我好久,我的开发机是256G的SSD(固态硬盘),但是用着用着就会空间不...

系统清理软件Omni Remover for Mac版

内容介绍你是否需要一款可以帮你清理Mac系统顽固垃圾的工具呢?试试OmniRemoverforMac吧!OmniRemoverMac版是一款运行在Mac平台上的系统清理软件。OmniRem...

mac上一款好用的多功能系统清理软件Omni Remover for Mac

mac上一款好用的多功能系统清理软件——OmniRemoverforMac。OmniRemovermac破解版是Mac平台上的一款软件清理工具。OmniRemoverMac版专为优化内存...

清理重建mac OS图标缓存(mac系统清空)

关于macos缓存问题你了解多少?今天macdown小编带大家了解下有关Mac清除图标缓存的相关知识!你知道吗?为了提升图形界面加载速度,默认情况下macOS针对Finder和Dock中的...

iOS 9 人机界面指南(五):图标与图形设计

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。文章索引5.1图标与图像尺寸(IconandImageSizes)5.2应用图标(AppIcon)5.2....

你中招了吗?盘古团队发布XcodeGhost病毒检测应用

最近大批知名iOS应用被感染XcodeGhost病毒事件闹得沸沸扬扬,虽然该病毒作者发表声明称,XcodeGhost源于自己的实验,没有任何威胁性行为,同时公开了源代码。但依然无法消除众多用户的担忧,...

iOS应用感染Xcode真是无恶意实验?感染APP最新名单及版本号

前瞻科技快讯9月19日消息,一向号称是最安全的iOS真的不安全了?对于这两天闹得沸沸扬扬的多款iOS应用感染XcodeGhost病毒事件,今日凌晨4点左右,网友@XcodeGhost-Author在微...

苹果应用签名失败怎么处理(ios应用签名什么意思)

在移动应用开发过程中,苹果应用签名失败是一种常见的问题,它可能由多种原因引起。本文将介绍一些处理苹果应用签名失败的方法,帮助开发者解决这个问题。检查证书和描述文件:首先,开发者应该检查使用的证书和描述...

好用的系统扫描和清理工具推荐:OS Cleaner Pro for Mac

为大家推荐一款全面的系统扫描和清理工具,OSCleanerProforMac...

系统清理软件 Omni Remover for Mac

你是否需要一款可以帮你清理Mac系统顽固垃圾的工具呢?试试OmniRemoverforMac吧!OmniRemoverMac版是一款运行在Mac平台上的系统清理软件。OmniRemover...

优秀的Mac系统清理软件(mac清理系统占用空间)

OmniRemoverforMac是一款优秀的系统清理软件,功能有清洁卸载膨胀且顽固的应用程序,在macOSCatalina上清除32位不兼容的应用程序,iTunes,Xcode和Sketc...

苹果app安卓apk应用内用微信登录游戏时会显示登录失败怎么解决?

解决苹果iOS应用和安卓APK应用在使用微信授权登录时出现“登录失败,签名不一致”的问题,可以按照以下步骤进行排查和解决:1.核实AppID和AppSecret:确保iOS和安卓项目中使用的微信开放...

Cleaner for Xcode(遗留废弃文件清理工具)

Mac上的Xcode总是占用很大空间,并且用的时间越久越大!可通过删除不需要的和不建议使用的文件来帮助您加快Xcode的运行速度,你可以每月或者每周运行一次进行清理。有需要的朋友,赶快来下载吧~Cle...

Cleaner for Xcode mac(xcode清理工具)

Xcode文件太多,如何检测清理?试试CleanerforⅩcode吧!CleanerforXcodeforMac可以检测您的Xcode占用磁盘的情况,统计各个部件所占用的空间。并帮助您...

柠檬清理一款Mac设备必备的实用工具

简介柠檬清理是针对macOS系统专属制定的清理工具。主要功能包括重复文件和相似照片的识别、软件的定制化垃圾扫描、可视化的全盘空间分析、内存释放、浏览器隐私清理以及设备实时状态的监控等。重点聚焦清理功能...

取消回复欢迎 发表评论: