加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 添加尾随逗号以确保.csv行具有相同的列数

发布时间:2020-12-15 21:26:57 所属栏目:安全 来源:网络整理
导读:我有一个逗号分隔文件,其行具有不均匀的列数. 我想添加尾随逗号(带空值),以便每列具有最大列数. 我目前有: i1,12,15i2,00,01i3i4,18,21,36 这只是一个示例,实际文件的最大列数不同. 我上面例子的所需输出是: i1,15,i2,01,i3,i4,36 先感谢您! 解决方法 一
我有一个逗号分隔文件,其行具有不均匀的列数.

我想添加尾随逗号(带空值),以便每列具有最大列数.

我目前有:

i1,12,15
i2,00,01
i3
i4,18,21,36

这只是一个示例,实际文件的最大列数不同.

我上面例子的所需输出是:

i1,15,i2,01,i3,i4,36

先感谢您!

解决方法

一个用于GNU awk.它处理文件两次.在第一次运行时,它确定最大字段数,在第二次运行时,它将“空”(井,两个空格)字段添加到结尾:

$awk '
BEGIN {
    FS=OFS=","            # field separators
}
NR==FNR {                  # first run
    if(maxnf<NF)           # find the biggest NF
        maxnf=NF
    next
}
NF<maxnf {
    nf=NF+1                # store NF+1 for for
    NF=maxnf               # reset the NF
    for(nf;nf<=NF;nf++)    # process the new fields
        $nf="  "
}1' file file              # output records

输出:

i1,36

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读