首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用下面一行中的值填充缺失的字段

用下面一行中的值填充缺失的字段
EN

Unix & Linux用户
提问于 2020-12-03 07:14:00
回答 1查看 224关注 0票数 0

我有一个分号分隔的数据文件,其中只有几行有“完整”数据集。它们位于应用数据集的行块的末尾。我希望使用shell脚本(或类似的命令行工具)将完整填充行中的数据添加到上面的行中。

例如,假设我拥有的文件包含以下数据:

代码语言:javascript
复制
86540701
86951202
86262402
86509002
86770802
86459902
86301002
86485102
86556002;Vivo Y11;1630000;NULL;;;
86447404
86161405
86388604
86106105
86426405;Xiaomi Redmi 8A Pro (Redmi 8A Dual);1465000;4;;;

我希望能够找到完整的行,并将这些数据替换为上面不完整的行,如下所示:

代码语言:javascript
复制
86540701;Vivo Y11;1630000;NULL;;;
86951202;Vivo Y11;1630000;NULL;;;
86262402;Vivo Y11;1630000;NULL;;;
86509002;Vivo Y11;1630000;NULL;;;
86770802;Vivo Y11;1630000;NULL;;;
86459902;Vivo Y11;1630000;NULL;;;
86301002;Vivo Y11;1630000;NULL;;;
86485102;Vivo Y11;1630000;NULL;;;
86556002;Vivo Y11;1630000;NULL;;;
86447404;Xiaomi Redmi 8A Pro (Redmi 8A Dual);1465000;4;;;
86161405;Xiaomi Redmi 8A Pro (Redmi 8A Dual);1465000;4;;;
86388604;Xiaomi Redmi 8A Pro (Redmi 8A Dual);1465000;4;;;
86106105;Xiaomi Redmi 8A Pro (Redmi 8A Dual);1465000;4;;;
86426405;Xiaomi Redmi 8A Pro (Redmi 8A Dual);1465000;4;;;
EN

回答 1

Unix & Linux用户

发布于 2020-12-03 09:10:05

使用sed

代码语言:javascript
复制
sed -E '
    /;/!{ :a N;/;/!{ s/\n/-/;ta; }; };
    /;/ { s/\n/-/; };
    :c s/([^-]*)-([^;]*)(;.*)$/\1\3\n\2\3/; tc' infile
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/622677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档