文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

awk print怎么在shell中使用

2023-06-09 11:56

关注

这期内容当中小编将会给大家带来有关awk print怎么在shell中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

awk 的工作原理:
1。AWK读取输入文件一次一行。
2。对于每一行,它匹配在给定的顺序模式,如果匹配,执行相应的动作。
3。如果没有模式匹配,将执行任何行动。
4。在上面的语法,无论是搜索模式,或行动是可选的,但不能同时。
5。如果没有给出搜索模式,然后awk要执行每一行输入给定的行动。
6。如果没有给出动作,打印,这是默认的操作与模式相匹配的所有行。 7。空出的任何行动括号什么都不做。它不会执行默认的打印操作。
8。中的每个行动的声明应该用分号分隔。让我们创建employee.txt文件,其中有

首先, 你需要先了解awk 的工作原理:

1。AWK读取输入文件一次一行。
2。对于每一行,它匹配在给定的顺序模式,如果匹配,执行相应的动作。
3。如果没有模式匹配,将执行任何行动。
4。在上面的语法,无论是搜索模式,或行动是可选的,但不能同时。
5。如果没有给出搜索模式,然后awk要执行每一行输入给定的行动。
6。如果没有给出动作,打印,这是默认的操作与模式相匹配的所有行。
7。空出的任何行动括号什么都不做。它不会执行默认的打印操作。
8。中的每个行动的声明应该用分号分隔。

让我们创建employee.txt文件,其中有以下内容,这将是在使用
下文提到的例子。

$cat employee.txt100 Thomas Manager Sales  $5,000200 Jason Developer Technology $5,500300 Sanjay Sysadmin Technology $7,000400 Nisha Manager Marketing $9,500500 Randy DBA  Technology $6,000

Awk的范例1。 awk的默认行为

默认情况下的awk打印文件的每一行。

1234567$ awk '{print;}' employee.txt100 Thomas Manager Sales  $5,000200 Jason Developer Technology $5,500300 Sanjay Sysadmin Technology $7,000400 Nisha Manager Marketing $9,500500 Randy DBA  Technology $6,000

在上面的例子中模式中没有给出。因此,是适用于所有的行。
action与任何参数的打印输出默认情况下,输出整行.

Awk的范例2。打印与模式匹配的行。

1234$ awk '/Thomas/

> /Nisha/' employee.txt100 Thomas Manager Sales  $5,000400 Nisha Manager Marketing $9,500

在上面的例子,它打印的“Thomas”或“Nisha”匹配的所有行。它有两种模式。

Awk的范例3。只打印特定的字段。

awk有内置的变量。对于每一个记录,即行,分隔空白字符分隔记录默认情况下,它存储在$ n个变量。如果该行有4个词,它会被存储在$ 1,2,2,2, 3和$ 4。 $0表示整行。 NF是一个内置变量,它代表这一行有多少个被分隔的域.

12345678910111213$ awk '{print $2,$5;}' employee.txtThomas $5,000Jason $5,500Sanjay $7,000Nisha $9,500Randy $6,000
$ awk '{print $2,$NF;}' employee.txtThomas $5,000Jason $5,500Sanjay $7,000Nisha $9,500Randy $6,000

Awk 范例4. 初始化and Final Action

Awk 两个重要的pattern , 由关键词 BEGIN and END 标识

Syntax:

BEGIN { Actions}
{ACTION} # Action for everyline in a file
END { Actions }

#is for comments in Awk

这是一个例子

12345678910111213
$ awk 'BEGIN {print “Name\tDesignation\tDepartment\tSalary”;}

> {print $2,"\t",$3,"\t",$4,"\t",$NF;}> END{print "Report Generated\n--------------";> }' employee.txtName Designation Department SalaryThomas Manager Sales   $5,000Jason Developer Technology $5,500Sanjay Sysadmin Technology $7,000Nisha Manager Marketing $9,500Randy DBA  Technology $6,000Report Generated--------------

在上面的例子,它打印出的报告和最后文件的

Awk的范例6。打印技术部门的雇员列表。

部门名称现在是第四个字段,所以需要检查与“Techology”的字符串,如果$4 匹配,则打印这一行
$ awk ‘$4 ~/Technology/' employee.txt
200 Jason Developer Technology $5,500
300 Sanjay Sysadmin Technology $7,000
500 Randy DBA Technology $6,000

操作符〜是正则表达式比较。如果匹配的默认操作,即打印整行.

Awk的范例7。打印在技术部门的雇员人数

下面的例子, 检查 department 是否是Technology, 如果是 则Action中,只增加变量的计数. 这个变量在BEGIN 中被初始化为0

123456

$ awk 'BEGIN { count=0;}$4 ~ /Technology/ { count++; }END { print "Number of employees in Technology Dept =",count;}' employee.txtNumber of employees in Tehcnology Dept = 3

上述就是小编为大家分享的awk print怎么在shell中使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯