使用awk,如果以下条件不符合,如何将记录保存到另一个文件?

时间:2014-09-25 03:28:24

标签: bash unix awk

如果下面的条件不符合,如何将记录保存到另一个文件。我只有下面的“如果”,我不知道在哪里放其他条件。

 awk '                                       
 NF {                                        
 data  = substr ($0, 1, 14)    
 data2 = substr ($0, 1, 1)         
 count = gsub (/0/, "", data)               
  }   

 {if (count<=11 || data2!=5) print }' $FILES > ${DST}/${FILES}

1 个答案:

答案 0 :(得分:2)

您可以在awk脚本中进行重定向。使用bash构造从awk调用-v变量。 FILENAMEawk内置变量,用于保存在运行时从${FILES}变量接收的文件的名称。

awk -v dst="${DST}" -v dstb="${DST_B}" '                                       
NF {                                        
    data  = substr ($0, 1, 14)    
    data2 = substr ($0, 1, 1)         
    count = gsub (/0/, "", data)               
    if (count<=11 || data2!=5) {
        print > ( dst "/" FILENAME )
    }
    else {
        print > ( dstb "/" FILENAME )
    }
}' $FILES