检查文件中所需字段的长度(使用shell脚本),如果不匹配则丢弃这些记录

时间:2015-07-02 10:00:10

标签: ksh

我的测试文件中有以下详细信息。

HEADER
A12345678|PROCESS
B12345678|PROCESS
C12345678|GOOD
D12345678|GOOD
E123456789|PROCESS
F123456|GOOD
G12345678|PROCESS
8|TRAILER

我想要检查第一列的长度是否为9.如果是,我们将继续这些记录,如果不是,我们将丢弃记录。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您可以处理egrep '^.{9}\|' testfile给出的行。

答案 1 :(得分:0)

您可以尝试一次:

    set -x
    cat file1|cut -d "|" -f1 > file_ab
    ln_count=`cat file_ab | wc -l` 


    i=1
    while [ $ln_count -ne 0 ]
    do
        column_content=`cat file2|head -$i|tail -1`
        len=`echo $column_content | wc -c`
        len1=`expr $len - 1`
        if [ $len1 -eq 9 ] 
        then
            echo 'I am in if'
            cat file1 | head -$i | tail -1 >> file3
        else
            echo 'I am in else'
            cat file1 | head -$i | tail -1 >> file4
        fi

        i=`expr $i + 1`
        ln_count=`expr $ln_count - 1`


    done