AWK实用技巧与示例详解
1. getline的输入使用
getline是AWK中一个强大的输入函数,它的返回值会根据不同情况有所不同:如果成功读取一条记录,返回值为1;如果到达文件末尾,返回值为0;如果出现错误,返回值为 -1。同时,它可能会影响一些内置变量,特别是位置变量($0 和 $1…$n)以及“字段数量”变量(NF)。
1.1 从文件读取
假设我们有两个文件,一个是 enzyme.txt ,包含酶的名称和它们的催化活性值;另一个是 class.txt ,包含酶的名称和它们所属的类别。我们的目标是将这两个文件的信息合并到一个文件中。
以下是这两个文件的内容示例:
$ cat enzyme.txt
Enzyme Km
Protease 2.5
Hydrolase 0.4
ATPase 1.2
$ cat > class.txt
Protease = Regulation
ATPase = Energy
Hydrolase = Macro Molecules
Hydrogenase = Energy
Phosphatase = Regulation
可以看到, enzyme.txt 的字段用空格分隔,而 class.txt 的字段用“ = ”分隔。
下面是用于解决这个问题的AWK脚本 enzyme-class.awk :
超级会员免费看
订阅专栏 解锁全文
920

被折叠的 条评论
为什么被折叠?



