听说awk语言也可以编写脚本

导读从 awk 系列开始,我们都是在命令行或者脚本文件里写一些简短的 awk 命令和程序。然而 awk 和 shell 一样也是一个解释型语言。通过从开始到现在的一系列的学习,你现在能写可以执行的 awk 脚本了。

听说awk语言也可以编写脚本听说awk语言也可以编写脚本

概述

和写 shell 脚本差不多,awk 脚本以下面这一行开头:

#! /path/to/awk/utility -f

例如在我的系统上,awk 工具安装在 /user/bin/awk 目录,所以我的 awk 脚本以如下内容作为开头:

#! /usr/bin/awk -f

上面一行的解释如下:

  • #! ,称为释伴,指明使用那个解释器来执行脚本中的命令;
  • /usr/bin/awk ,即解释器;
  • -f ,解释器选项,用来指定读取的程序文件;

说是这么说,现在从下面的简单例子开始,让我们深入研究一些可执行的 awk 脚本。使用你最喜欢的编辑器创建一个新文件,像下面这样:

$ vi script.awk

然后把下面代码粘贴到文件中:

#!/usr/bin/awk -f
BEGIN { printf "%s/n","Writing my first awk executable script!" }

保存文件后退出,然后执行下面命令,使得脚本可执行:

$ chmod +x script.awk

然后,执行它:

$ ./script.awk

输出样例:

Writing my first awk executable script!
添加注释

听说awk语言也可以编写脚本听说awk语言也可以编写脚本

一个严格的程序员一定会问:“注释呢?”。是的,你可以在 awk 脚本中包含注释。在代码中写注释是一种良好的编程习惯。它有利于其它程序员阅读你的代码,理解程序文件或者脚本中每一部分的功能。所以,你可以像下面这样在脚本中增加注释:

#!/usr/bin/awk -f
# 这是如何在 awk 中写注释的示例
# 使用特殊模式 BEGIN 来输出一句话
BEGIN { printf "%s/n","Writing my first awk executable script!" }

接下来我们看一个读文件的例子。我们想从帐号文件 /etc/passwd 中查找一个叫 aaronkilik 的用户,然后像下面这样打印用户名、用户的 ID、用户的 GID :

下面是我们脚本文件的内容,文件名为 second.awk。

#! /usr/bin/awk -f
# 使用 BEGIN 指定字符来设定 FS 内置变量
BEGIN { FS=":" }
# 搜索用户名 aaronkilik 并输出账号细节
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

保存文件后退出,使得脚本可执行,然后像下面这样执行它:

$ chmod +x second.awk
$ ./second.awk /etc/passwd

输出样例:

Username : aaronkilik User ID : 1000 User GID : 1000

在下面最后一个例子中,我们将使用 do while 语句来打印数字 0-10:

下面是我们脚本文件的内容,文件名为 do.awk。

#! /usr/bin/awk -f
#printing from 0-10 using a do while statement
#do while statement
BEGIN {
#initialize a counter
x=0
do {
print x;
x+=1;
}
while(x<=10)
}

保存文件后,像之前操作一样使得脚本可执行。然后,运行它:

$ chmod +x do.awk
$ ./do.awk

输出样例

0
1
2
3
4
5
6
7
8
9
10
总结

我们已经到达这个精彩的 awk 系列的最后,我希望你从过往的文章中学到了很多知识,把这些当作你 awk 编程语言的入门指导。从一开始就提到过,awk 是一个完整的文本处理语言,所以你可以学习很多 awk 编程语言的其它方面,例如环境变量、数组、函数(内置的或者用户自定义的),等等。awk 编程还有其它内容需要学习和掌握,所以在文末我提供了一些重要的在线资源的链接,你可以利用他们拓展你的 awk 编程技能。但这不是必须的,你也可以阅读一些关于 awk 的书籍。

本文转载自:http://www.linuxprobe.com/awk-write-scripts.html

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

转载于:https://www.cnblogs.com/Hdf-fight/p/5933201.html

linux下awk的使用+练习 Awk是一种非常好的语言,同时有一个非常奇怪的名称。在本系列文章中,DanielRobbins 将使您迅速掌握 awk编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真正的高级awk 演示程序。 捍卫 awk    在本系列文章中,我将使您成为精通 awk 的编码人员。我承认,awk 并没有一个非常好听且又非常“时髦”的名字。awk 的 GNU 版本(叫作 gawk) 阅读详情

相关推荐

awk教程(怎样使用awk编写脚本)

awk是unix,linux中处理文本的好工具,本文是怎样使用awk编写脚本的简明教程。

(六)、awk编程基础

包括awk概述、awk工作原理、awk命令格式、awk输入与输出、awk记录与字段、awk模式与操作、awk中的关系运算、awk中的算术运算符、awk中的逻辑操作符。

qq_45138120的博客 404

STM32F105双路CAN通讯无法进入接收中断问题及解决方法

STM32F105RBT6双路CAN通讯无法进入接收中断问题及解决方法

m0_62383223的博客 3442

awk基本用法、处理条件、awk应用案例、监控脚本编写

准备一个测试文档,里面有6行,每行分别是abc、xyz、abc、opq、xyz、abc 然后按照awk逐行处理的工作特点使用awk '{a[$1]++}' shu.txt 走完每一行得到下列结果,但不会输出到屏幕。要求: 格式化输出passwd文件内容时,要求第一行为列表标题,中间打印用户的名称、UID、家目录信息,最后一行提示一共已处理文本的总行数,效果如图-1所示。通过awk提取信息时,利用IP地址作为数组下标,每遇到一个重复值就将此数组元素递增1,最终就获得了这个IP地址出现的次数。

fmj121030的博客 1295

解锁机器人逆运动学算法:从理论到实战

机器人逆运动学,简单来说,就是已知机器人末端执行器(如机械臂的手部、工具等)期望达到的位置和姿态,求解机器人各个关节需要达到的角度或位移的过程。在机器人的实际应用场景中,逆运动学起着不可或缺的作用。以工业制造中的焊接机器人为例,为了完成复杂的焊接任务,焊接头(末端执行器)需要精准地到达工件上的各个焊接点,并保持合适的姿态以确保焊接质量。这时,逆运动学算法就根据焊接点的三维坐标以及焊接头应有的姿态(如角度等),计算出机械臂各个关节的转动角度,从而控制机械臂带动焊接头准确地运动到目标位置。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2052

【华为OD机试真题E卷】474、推荐多样性 | 机试真题+思路参考+代码解析(E卷复用)(C++、Java、Py)

题目描述 >推荐多样性需要从多个列表中选择元素,一次性要返回 N 屏数据(窗口数量),每屏展示 K 个元素(窗口大小),选择策略:   各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一个元素,再从第二个列表中为每屏选择一个元素,依次类推   每个列表的元素尽量均分为 N 份,如果不够 N 个,也要全部分配完,参考样例图:

KJ.JK 4434

Shell脚本⑦awk

awk:Aho, Weinberger, Kernighan,报告生成器,格式化文本输出,GNU/Linux发布的AWK目前由自由软件基金会(FSF)进行开发和维护,通常也称它为 GNU AWK。

Kiryu7的博客 1471

【车载以太网测试从入门到精通】系列文章目录汇总

物理层测试、数据链路层测试、以太网交换机测试、网络层测试、传输层测试、以太网TCP/IP协议自动化测试、以太网网络管理测试、以太网网络管理自动化测试、鲁棒性测试、SOME/IP测试、SOMEI/IP服务接口自动化测试、DoIP诊断测试、DoIP诊断自动化测试、DoIP BootLoader刷写、以太网网关路由测试、以太网网关路由自动化测试、AVB测试。

测试领域技术分享 3161

AWK脚本

1、AWK脚本定义格式 格式1: BEGIN{} pattern{} END{} 格式2: #!/bin/awk -f #add 'x' right BEGIN{} pattern{} END{} 关于awk 脚本,需要注意两个关键词BEGIN和END BEGIN{ 这里面放的是执行前的语句 } END {这里面放的是处理完所有的行后要执行的语句} {这里面放的是处理每一行时要执行的语句} 格式1假设为f1.awk文件,格式2假设为f2.awk文件 awk [-v var=val

qq_48644092的博客 2388

python+playwright 学习-10.pytest-playwright插件编写测试用例

pytest-playwright插件完美的继承了pytest 用例框架和playwright基础使用的封装,基本能满足工作中的常规需求了,不需要我们再做额外的插件开发。

qq_27371025的博客 2519

matlab计算图像信噪比SNR

【代码】matlab计算图像信噪比SNR。

baidu_34971492的博客 1396

听说awk语言也可以编写脚本_awk jia文脚本,2024年最新Github标星5.3K

(img-oSWGpu1R-1713545127940)]4b (备注运维)**

2401_83974117的博客 1157

QGis软件 —— 9、QGis - 由点绘制热力图来模拟人流量(绘制点方式、excel导入数据方式)

QGis软件 —— 9、QGis - 由点绘制热力图来模拟人流量(绘制点方式、excel导入数据方式)

1470

Awk 实例

通用线程:Awk 实例,第 1 部分一种名称很奇特的优秀语言介绍 Daniel Robbins总裁兼 CEO,Gentoo Technologies, Inc.2000 年 12 月转载自:IBM developerWorks 中国网站内容:捍卫 awk第一个 awk多个字段外部脚本BEGIN 和 END 块规则表达式和块表达式和块条件语句数值变量字符串化变量众多运算符字段分隔符字段数量记录号参考

2131

SAP_ABAP_SD_BAPI清单案例教程——销售订单开票_BAPI_BILLINGDOC_CREATEMULTIPLE_VF01_S4版本

SAP BAPI(Business Application Programming Interface)是SAP系统中的一组规范和标准,用于从SAP系统中获取数据、输入数据和更新数据。这些API允许开发者以编程方式与SAP系统交互,而无需编写大量的自定义代码。2.1 Copy代码 直接可使用。2.2 VF01开票。

java_zhong1990的专栏 2214

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

awk使用

通用线程:Awk 实例,第 1 部分一种名称很奇特的优秀语言介绍 Daniel Robbins总裁兼 CEO,Gentoo Technologies, Inc.2000 年 12 月转载自:IBM developerWorks 中国网站  内容:

小春的药匣子 1750

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Awk的一些使用方法

通用线程:Awk 实例Daniel Robbins (drobbins@gentoo.org)第一部分Awk 是一种非常好的语言,同时有一个非常奇怪的名称。在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真正的高级 awk 演示程序。捍卫 awk在本系列文章中,我将使您成为精通 awk 的编码人员。我承认,awk 并没有一个非常好听且又非常“时髦”的名字。awk 的 GNU 版本(叫作 gawk)听起来

yuanxuran0101的专栏 1510

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

linux shell awk用法

转载地址:http://blog.youkuaiyun.com/weekly123/article/details/1465675 linux shell awk 语法     Awk 是一种非常好的语言,同时有一个非常奇怪的名称。在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真正的高级 aw

Firedb的专栏 3811

awk基本使用方式详解

awk是linux文本处理三剑客之一,使用起来方便快速,同时其功能还十分强大。 本文从基础入手,简要介绍了awk的基本使用方式,应付平常的基本文本处理和简单的数据清洗需要已经很足够了。 希望帮助到有需要的人。

keepaware的博客 6239

Aha awk!

title: Aha awk! date: 2019-01-04 18:55:02 tags: [tools] 原文链接 在开始学Linux的时候就听说过awk这个工具,但当时觉得,这个工具,好像平时用不太到啊,于是就没怎么学。不过最近写脚本的时候,在网上看到了一些awk的脚本,惊叹于awk的文本处理能力,我想,是时候拿起awk这个文本处理神器了。 介绍 awk其实是Aho,Winberger...

Focus 368

awk 学习

通用线程:Awk 实例 第 1部分 一种名称很奇特的优秀语言介绍  http://www-128.ibm.com/developerworks/cn/linux/shell/awk/awk-1/index.html Awk是一种非常好的语言,同时有一个非常奇怪的名称。在本系列(共三篇文章)的第一篇文章中,DanielRobbins 将使您迅速掌握 awk编程技巧。随着本系列的进展,将讨论更高

回南山种豆的专栏 792
上一篇: 注意啦!10 个你需要了解的 Linux 网络和监控命令
下一篇: 教你摸清 Linux PC 的性能底细?
admin668899
博客等级 码龄12年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值