首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将grep命令输出到缩进行作为瀑布模型

将grep命令输出到缩进行作为瀑布模型
EN

Unix & Linux用户
提问于 2021-09-06 01:10:32
回答 1查看 391关注 0票数 0

我的grep输出,应该在后面的每一行中以缩进增量的方式显示一行。

grep命令输出为:

EN

回答 1

Unix & Linux用户

发布于 2021-09-30 20:51:24

使用GNU awk,我们可以输出每一行输入,缩进与文件中行号相对应的空格数,减去1。

代码语言:javascript
复制
grep ... | awk '{ printf "%2$*1$s\n", NR+length-1, $0 }'

此处使用的printf格式字符串指定输出第二个字符串参数(即$0,当前行),其字段宽度由第一个参数(NR+length-1,输入中当前行的序号,加上行的长度,减1)提供。这样做的效果就是以交错的方式输出线条,这正是你想要的效果。

大多数awk的非GNU实现都不支持这种更高级的printf格式的使用,因此您需要以不同的方式来解决它。

代码语言:javascript
复制
grep ... | awk '{ print indent $0 } { indent = indent " " }'

上面的内容可能比第一个awk命令更容易理解。我们使用一个变量,我们称之为indent。这个变量只包含空格,在输出以indent当前值为前缀的当前行之后,我们为每一行输入添加一个新的空格字符。

在上述两条管道中,grep ...都象征着您在提问时顺便提到的grep命令。

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

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

复制
相关文章

相似问题

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