Unix awk程序设计命令行使用知识讲解

系统 其他OS
我们将用一些例子来对前面的知识进行回顾,这些例子都是在命令行中使用的,由此我们可以知道在命令行中使用Unix awk是多么的方便。

我们在这里讲解Unix awk程序设计的内容,但在讲解之前,我们将用一些例子来对前面的知识进行回顾,这些例子都是在命令行中使用的,由此我们可以知道在命令行中使用Unix awk是多么的方便。

这样做的原因一方面是为下面的内容作铺垫,另一方面是介绍一些解决简单问题的方法,我们完全没有必要用复杂的方法来解决简单的问题----既然Unix awk提供了较为简单的方法的话。

例:显示文本文件mydoc匹配(含有)字符串"sun"的所有行。
$awk '/sun/{print}' mydoc

由于显示整个记录(全行)是Unix awk的缺省动作,因此可以省略action项。
$awk '/sun/' mydoc

例:下面是一个较为复杂的匹配的示例:
$awk '/[Ss]un/,/[Mm]oon/ {print}' myfile

它将显示第一个匹配Sun或sun的行与第一个匹配Moon或moon的行之间的行,并显示到标准输出上。

例:下面的示例显示了内置变量和内置函数length()的使用:
$awk 'length($0)>80 {print NR}' myfile

该命令行将显示文本myfile中所有超过80个字符的行号,在这里,用$0表示整个记录(行),同时,内置变量NR不使用标志符'$'。

例:作为一个较为实际的例子,我们假设要对Unix中的用户进行安全性检查,方法是考察/etc下的passwd文件,检查其中的passwd字段(第二字段)是否为"*",如不为"*",则表示该用户没有设置密码,显示出这些用户名(第一字段)。我们可以用如下语句实现:
#awk -F: '$2=="" {printf("%s no password! ",$1' /etc/passwd

在Unix awk这个示例中,passwd文件的字段分隔符是“:”,因此,必须用-F:来更改默认的字段分隔符,这个示例中也涉及到了内置函数printf的使用。

【编辑推荐】

  1. 关于Unix系统线路图的简单介绍
  2. Unix系统的心脏Unix文件系统
  3. 总结关于Unix系统相关的经验教训
  4. 对Unix系统发展期和现况的了解
  5. 学习Unix系统知识的一些经验之谈
责任编辑:小霞
相关推荐

2010-04-20 11:16:08

Unix操作系统

2010-04-09 16:36:54

Unix操作系统

2018-03-14 14:27:00

2010-05-27 14:48:45

SVN命令行使用说明

2021-09-18 09:19:21

Linux

2009-09-22 14:17:05

2022-06-16 14:54:53

hilog工具鸿蒙

2010-04-30 13:38:51

Unix at命令

2010-05-11 10:36:34

Unix awk

2010-05-11 10:43:10

Unix awk

2017-03-13 08:50:35

科技新闻早报

2010-04-09 16:26:20

Unix操作系统

2010-09-03 09:18:23

LinuxUNIX命令行

2010-05-11 13:33:22

Unix awk

2010-05-06 17:03:49

Unix命令

2014-04-10 10:10:16

KVMDebianUbuntu

2019-02-13 09:20:13

Linux命令行more

2010-05-06 17:41:19

Unix命令

2010-04-21 11:54:22

Unix 命令

2010-04-13 19:07:18

Unix操作系统
点赞
收藏

51CTO技术栈公众号