当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 字符串函数和……支票簿?Daniel Robbins总裁兼 CEO, Gentoo Technologies, Inc.2001 年 4 月 在这篇 awk 系列的总结中,Daniel 向您介绍 awk 重要的字符串函数,以及演示了如何从头开始编写完整的支票簿结算程序。
 

 

    摘要:2001 年 10 月 在这篇 sed 系列的总结性文章中,daniel robbins 带您体验 sed 的真正力量。在介绍完几个重要的 sed 脚本之后,他将通过将一个 quicken .qif 文件转换成可读文本格式来演示一些基本 sed 脚本的编写。该转换脚本不仅实用,而且还是展现 sed 脚本编写能力的极佳示例。强健的 sed在 第二篇 sed 文章中,我提供了一些示例来演示 sed 的......
    摘要:2001 年 10 月 在本文章系列中,daniel robbins 将为您演示如何使用功能十分强大(但常被遗忘)的 unix 流编辑器 sed。sed 是用批处理方式编辑文件或以十分有效的方式创建 shell 脚本以修改现有文件的理想工具。挑选编辑器在 unix 世界中有很多文本编辑器可供我们选择。思考一下 -- vi、emacs 和 jed 以及很多其它工具都会浮现在脑海中。我们都有自己已逐渐......


通用线程:Awk 实例,第 3部分
字符串函数与……支票簿?

daniel robbins 【程序编程相关:系统调用的实现及调用过程

【推荐阅读:关于Raid-10

总裁兼 ceo, gentoo technologies, inc. 【扩展信息:学习嵌入式Linux的笔记和体会

2001 年 4 月

在这篇 awk 系列的总结中,daniel 向您介绍 awk 重要的字符串函数,以及演示了如何从头开始编写完整的支票簿结算程序.在这个过程中,您将学习如何编写自己的函数,并使用 awk 的多维数组.学完本文之后,您将掌握更多 awk 经验,可以让您创建功能更强大的脚本.

格式化输出

虽然大多数情况下 awk 的 print 语句可以完成任务,但有时我们还需要更多.在那些情况下,awk 提供了两个我们熟知的老朋友 printf() 与 sprintf().是的,如同其它许多 awk 部件一样,这些函数等同于相应的 c 语言函数.printf() 会将格式化字符串打印到 stdout,而 sprintf() 则返回可以赋值给变量的格式化字符串.如果不熟悉 printf() 与 sprintf(),介绍 c 语言的文章可以让您迅速了解这两个基本打印函数.在 linux 系统上,可以输入 "man 3 printf" 来查看 printf() 帮助页面.

以下是一些 awk sprintf() 与 printf() 的样本代码.可以看到,它们几乎与 c 语言完全相同.

x=1 b="foo" printf("%s got a %d on the last test\n","jim",83) myout=("%s-%d",b,x) print myout

此代码将打印:

jim got a 83 on the last test foo-1

字符串函数

awk 有许多字符串函数,这是件好事.在 awk 中,确实需要字符串函数,因为不能象在其它语言(如 c.c++ 与 python)中那样将字符串看作是字符数组.例如,如果执行以下代码:

mystring="how are you doing today?" print mystring[3]

将会接收到一个错误,如下所示:

awk: string.gawk:59: fatal: attempt to use scalar as array

噢,好吧.虽然不象 python 的序列类型那样方便,但 awk 的字符串函数还是可以完成任务.让我们来看一下.

首先,有一个基本 length() 函数,它返回字符串的长度.以下是它的使用方法:

print length(mystring)

此代码将打印值:

24

好,继续.下一个字符串函数叫作 index,它将返回子字符串在另一个字符串中出现的位置,如果没有找到该字符串则返回 0.使用 mystring,可以按以下方法调用它:

print index(mystring,"you")

awk 会打印:

9

让我们继续讨论另外两个简单的函数,tolower() 与 toupper().与您猜想的一样,这两个函数将返回字符串并且将所有字符分别转换成小写或大写.请注意,tolower() 与 toupper() 返回新的字符串,不会修改原来的字符串.这段代码:


...   下一页
 ·bash 实例,第 3 部分    »显示摘要«
    摘要:探讨 ebuild 系统daniel robbins总裁兼 ceo, gentoo technologies, inc.2000 年 5 月 daniel robbins 在其最后一篇 bash实例文章中详细讲述了 gentoo linux ebuild 系统,这个展示 bash能力的极佳范例。循序渐进地,他为您展示如何实现 ebuild系统,并触及很多方便的 bash技术和设计策略。在本文末尾,......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE