教程集 www.jiaochengji.com
教程集 >  脚本编程  >  shell  >  正文 awk处理文本字段(添加域)

awk处理文本字段(添加域)

发布时间:2014-09-21   编辑:jiaochengji.com
awk处理文本字段(添加域)

有这样的一段文本:
database1|error|security|summary
database1|info|vio|summary
database1|error|deep|summary

想要用awk处理成下面这样:
SECURITY|database1|error|security|summary
VIO|database1|info|vio|summary
AIX_DEEP|database1|error|deep|summary

添加的第一个字段虽然和第三个字段很像,但却不是....
看代码吧,一行命令实现:
 

复制代码 代码如下:
awk -vFS="|"‘BEGIN{key[security]="SECURITY";key[vio]="VIO";key[deep]="AIX_DEEP"}{print key[$3]"|"$0}’datafile

说明:定义了一个关联数组,将所有的key和value添加到一个数组中,并以第三个字段作为下标。

您可能感兴趣的文章:
awk处理文本字段(添加域)
awk基础知识(2)-处理多个字段
AWK 简介与例子
awk单行脚本快速参考
awk基础知识(4)-begin和end块
shell 字符串的查找与替换
awk基础知识(7)-变量
awk编程基础知识(5)-规则表达式
sed或awk处理文件最后一行
shell 字符串的存储 详解

[关闭]
~ ~