2015-01-09 53 views
1

的变化$ 0力重建这是在这里讨论AWK - 为什么不输出记录

Multiline edit in awk

从答案继上的问题和数据的跟踪,我想出了以下解决方案

BEGIN {RS="\n-+\n"; FS="\n";OFS="\t"} 
    NF > 1 {sub(/^MV: /,""); print} 

但是,这并没有工作,因为指定的OFS没有生效。当然,sub的默认行为是改变$ 0,它似乎不会触发记录重建(或者任何启动新OFS所必需的)。

如果我改变它的子命令

BEGIN {RS="\n-+\n"; FS="\n";OFS="\t"} 
    NF > 1 {sub(/^MV: /,"",$1); print} 

回答

1

这就像问到指定$ 1“为什么没有指数($ 0.3)返回$ 0的子串开始字符3?”这确实工作。答案很简单 - 因为这不是语言定义的方式。

分配到一个字段(例如$ 1)将重建用OFS替换FS的记录。

分配给$ 0使用FS将记录重新分割成字段。

这就是全部。

相关问题