ITEEDU

6.5. 练习

这里是一些能让 awk 变得很有用的练习例子。

  1. 第一个练习,你的输入是按照下列形式的行:

    Username:Firstname:Lastname:Telephone number

    写一个把这样的行转换成一个如下LDAP记录格式的 awk 脚本:

    dn: uid=Username, dc=example, dc=com
    cn: Firstname Lastname
    sn: Lastname
    telephoneNumber: Telephone number
    

    建立并检查一个包含一系列测试记录的文件。

  2. 使用 awk 和标准UNIX命令建立一个Bash脚本来显示在文件系统的 /home 中使用磁盘空间的前三位用户(如果你在一个单独的分区上没有目录包含home目录,把脚本用于 / 分区;在每个UNIX系统上都有)。首先,从命令行执行命令。然后放入脚本当中。脚本应该建立易于察看的输出(便于老板的检查)。如果每件事证明都能运作,使脚本把结果通过email发送给你(使用 mail -s Disk space usage < result)。

    如果配额守护程序在运行,使用它提供的信息;否则,使用 find

  3. 以下列格式为准从 Tab分割列表中建立XML风格输出:

    Meaning very long line with a lot of description
     
    meaning another long line
     
    othermeaning    more longline
     
    testmeaning     looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong line, but i mean really looooooooooooooooooooooooooooooooooooooooooooooooooong.
     
    

    输出像这样:

    <row>
    <entry>Meaning</entry>
    <entry>
    very long line
    </entry>
    </row>
    <row>
    <entry>meaning</entry>
    <entry>
    long line
    </entry>
    </row>
    <row>
    <entryothermeaning</entry>
    <entry>
    more longline
    </entry>
    </row>
    <row>
    <entrytestmeaning</entry>
    <entry>
    looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong line, but i mean really looooooooooooooooooooooooooooooooooooooooooooooooooong.
    </entry>
    </row>
    

    此外,如果你了解任何关于XML,写一个BEGIN和END脚本来完成这个表,或者在HTML中完成。