首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用上线内容替换空行

用上线内容替换空行
EN

Unix & Linux用户
提问于 2020-12-11 10:09:53
回答 2查看 1.1K关注 0票数 4

如何将选项卡分隔的文本文件中的空行替换为Linux机器上上面行的内容?例如:

代码语言:javascript
复制
101 abc group1
765 efg group2
345 hij group4

456 gfd group9
762 ert group7


554 fgt group11

预期产出:

代码语言:javascript
复制
101 abc group1
765 efg group2
345 hij group3
345 hij group3
456 gfd group9
762 ert group7
762 ert group7
762 ert group7
554 fgt group11
EN

回答 2

Unix & Linux用户

发布于 2020-12-11 10:26:29

下面是使用awk的一种方法(当NF为零时,p保留前一行)。

代码语言:javascript
复制
awk 'NF {p = $0} {print p}' file

当行不为空时,我们将该行存储到p (以备将来使用)并打印p

NF==0 (用于空行)时,我们只打印p

票数 9
EN

Unix & Linux用户

发布于 2020-12-12 17:37:21

在现有答案的基础上添加:

代码语言:javascript
复制
awk 'NR<2 && !NF{next} NF{print} !NF{print line} NF{line=$0}' test

..。还将处理空的第一行(通过忽略它,因为它没有先前的输入)。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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