文件列一致性检查

文件列一致性检查

  1. 在一份数据文件中, 如果严格按照约定好的文件分隔符, 那么每一行的列数应该是一样的. 如果出现某一行的列数不一样, 则说明文件格式有问题.

    这里是一份例子文件. 下列的文件内容如下:

    Name;Age:Addr

    Jacket;28;No101, Road A, City B

    这是一个包含三个列的文件, 列分隔符是’;’

  2. 我们可以用下面的命令检查第一行的列数

    awk -F\; '{print NF}' test.txt
    

    上述命令的返回应该是如下

    3

    3

    会返回2行结果, 每个结果都是3.

  3. 为了方便检查, 我们对结果再进行进一步的处理

    awk -F\; '{print NF}' test.txt | sort | uniq 
    

    上面的命令先对初始的输出做排序, 然后对结果去重

    这个命令的返回会是这样

    3

    返回只有一行, 是3. 因为第一次命令的结果都是3, 去重后结果只有一个3

  4. 如果格式不正确, 那么结果去重后的结果将会是多行

    比如, 如果文件是这样的

    Name;Age:Addr

    Jacket;28;NO.101, Road A, City B

    Tracy;25;NO.101, Road C; City B

    上述文件的第三行在Road C后面是一个’;'由于这和列分隔符冲突, 所以会导致第三行多出一列

  5. 再次用命令检查文件, 并去重后, 返回结果会是2条

    3

    4

    所以, 只要看上述命令的返回结果的行数, 就可以确定文件的列数是否统一.

  6. 再对命令进行补充, 用wc命令只看返回的行数 , 如果结果是1, 那么文件格式没有问题, 如果大于1, 则文件格式有问题

    awk -F\; '{print NF}' test.txt | sort | uniq |wc -l
    

以上就是检查文件列一致性的方法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值