6.5. 练习

这些是一些 awk 可以发挥作用的实用示例。

  1. 对于第一个练习,你的输入是以下形式的行

    Username:Firstname:Lastname:Telephone number

    编写一个 awk 脚本,将这样的一行转换为以下格式的 LDAP 记录

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

    创建一个包含几个测试记录的文件并进行检查。

  2. 创建一个 Bash 脚本,使用 awk 和标准 UNIX 命令来显示磁盘空间使用量排名前三的用户,位于/home文件系统(如果你没有将家目录放在单独的分区上,则为/分区创建脚本;这在每个 UNIX 系统上都存在)。首先,从命令行执行命令。然后将它们放入脚本中。脚本应该创建有意义的输出(即老板可以理解的)。如果一切正常,让脚本将结果通过电子邮件发送给你(例如,使用 mail -s Disk space usage < result)。

    如果 quota 守护进程正在运行,请使用该信息;否则,请使用 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 中完成。