命令行审计不会影响数据库,因为它使用从数据库中释放的数据。
我兼职做数据审计。把我想象成一个校对者,校对的是数据表格而不是一页一页的文章。这些表是从关系数据库导出的,并且规模相当小:100,000到1,000,000条记录,50到200个字段。我从来没有见过没有错误的数据表。如你所能想到的,这种混乱并不局限于重复记录、拼写和格式错误以及放置在错误字段中的数据项。
例子假设我想在一个大的表中的特定字段中找到最长的数据项。这不是一个真正的数据审计任务,但它会显示shell工具的工作方式。为了演示目的,我将使用制表符分隔的表full0,它有1,122,023条记录(加上一个标题行)和49个字段,我会查看36号字段。
现在我可以将这个长长的命令封装成一个shell函数,longest,它把第一个参数认为是文件名,第二个参数认为是字段号:现在,我可以以函数的方式重新运行这个命令,在另一个文件中的另一个字段中找最长的数据项,而不需要去记忆这个命令是如何写的:
最后调整一下,我还可以输出我要查询字段的名称,我只需要使用head命令抽取表格第一行的标题行,然后将结果管道至tr命令,将制表位转换为换行,然后将结果管道至tail和head命令,打印出第二个参数在列表中名称,第二个参数就是字段号。字段的名字就存储到变量field中,然后将它传向awk,通过变量fld打印出来。
注意,如果我在多个不同的字段中查找最长的数据项,我所要做的就是按向上箭头来获得最后一个最长的命令,然后删除字段号并输入一个新的。via:作者:选题:译者:校对:
领取专属 10元无门槛券
私享最新 技术干货