当我们学习使用Unix操作系统时,我们就应该学习使用命令行,这对我们养成良好的习惯很有帮助。您的不良习惯甚至会导致出现混乱。纠正此类缺点的最佳方法之一,就是有意识地采用抵制这些坏习惯的好习惯。我们在文章中提出了几个值得采用的 Unix操作系统命令行习惯。
Unix操作系统使用 awk 处理数据
awk 命令似乎始终处在 Perl 的阴影下,但它对于简单、基于命令行的数据处理来说是一个快速、实用的工具。清单 15 显示了如何开始使用 awk 命令。
若要获取文件中每行文本的长度,请使用 length() 函数。若要查看字符串 ing 是否出现在文件文本中,请使用 index() 函数,该函数返回 ing 首次出现的位置,这样您就可以使用它来进行进一步的字符串处理。若要 tokenize(也就是说,将一行拆分为单词长度的片段)某个字符串,请使用 split() 函数。
Unix操作系统基本 awk 处理 $ cat text
- testing the awk command
- $ awk '{ i = length($0); print i }' text
- 23
- $ awk '{ i = index($0,”ing”); print i}' text
- 5
- $ awk 'BEGIN { i = 1 } { n = split($0,a," "); while (i <= n) {print a; i++;} }' text
- testing
- the
- awk
- command
打印文本文件中的指定字段是一项简单的 awk 任务。在清单 16 中,sales 文件包含每个销售人员的姓名,后跟每月销售数字。您可以使用 awk 命令来快速获得每个月的销售总额。缺省情况下,awk 将每个以逗号分隔的值视为不同的字段。您使用 $n 操作符来访问每个字段。
Unix操作系统使用 awk 对数据进行汇总 $cat sales
- Gene,12,23,7
- Dawn,10,25,15
- Renee,15,13,18
- David,8,21,17
- $ awk -F, '{print $1,$2+$3+$4}' sales
- Gene 42
- Dawn 50
- Renee 46
- David 46
awk 命令可以很复杂并应用于广泛的情景中。若要更完整地学习Unix操作系统awk 命令,请从命令 man awk 开始。
使用Unix操作系统以上的方法,成为命令行高手需要进行一些实践。按照相同的方式处理问题很简单,因为您已经习惯了。在漫漫学习Unix操作系统中,让我们慢慢成长吧!
【编辑推荐】