通过使用grep数第1和第14位之间的零 [英] count of zeros between the 1st and 14th digit by using grep

查看:184
本文介绍了通过使用grep数第1和第14位之间的零的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何判断第1和第14位之间的零的个数?通过使用grep。

How to determine the count of zeros between the 1st and 14th digit? By using grep.

 500000000000922801808800000000000000000000922891863600000GS5      00*HOME


 500000000000022811740000000000000000000000922811741600000GS5      00*HOME

我的条件是:如果zero_count = 12然后将记录dst_dir
                 其他移动记录到drp_dir

My condition is: if zero_count=12 then move the record to dst_dir else move the record to drp_dir

推荐答案

假设 dst_dir drp_dir 两个要创建输出文件,以下 AWK 程序会为你做的。

Assuming that dst_dir and drp_dir are two output files you want to create, the following awk program will do that for you.

awk '
NF {
    data  = substr ($0, 1, 14)
    count = gsub (/0/, "", data)
    print > (count==12 ? "dst_dir" : "drp_dir")
}' file

使用 NF 我们跳过空白行。我们创建一个使用您的行 SUBSTR 功能的子集。 GSUB 返回做替代品的数量,所以我们捕捉返回值变量计数

Using NF we skip the blank lines. We create a subset of your line using substr function. gsub returns the number of substitution made, so we capture the return value to variable count.

最后,我们测试是否计数是12。如果是我们写的记录 dst_dir 否则我们写记录 drp_dir

Lastly, we test if the count is 12. If it is we write the record to dst_dir else we write the record to drp_dir.

这篇关于通过使用grep数第1和第14位之间的零的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆