小编tra*_*gle的帖子

删除文件中的多行

通常我会在之前回答的问题中找到我的答案,但这次不是(或者我不理解答案并且无法修改它们来做我希望他们做的事情),所以我在这里问我的第一个问题。

我的输入文件看起来像

# -*- coding: utf-8 -*-

[attachment]

[browser]


[changeset]

[components]
tracopt.versioncontrol.svn.svn_fs.subversionconnector = enabled
tracopt.versioncontrol.svn.svn_prop.subversionmergepropertydiffrenderer = enabled 
tracopt.versioncontrol.svn.svn_prop.subversionmergepropertyrenderer = enabled
tracopt.versioncontrol.svn.svn_prop.subversionpropertyrenderer = enabled

[header_logo]

[inherit]
file = /etc/trac/trac.ini

[logging]
Run Code Online (Sandbox Code Playgroud)

我想删除所有空白部分,如附件、浏览器、变更集、header_logo 和日志记录。我只会保留非空的部分。输出文件应该看起来像

# -*- coding: utf-8 -*-

[components]
tracopt.versioncontrol.svn.svn_fs.subversionconnector = enabled
tracopt.versioncontrol.svn.svn_prop.subversionmergepropertydiffrenderer = enabled
tracopt.versioncontrol.svn.svn_prop.subversionmergepropertyrenderer = enabled
tracopt.versioncontrol.svn.svn_prop.subversionpropertyrenderer = enabled

[inherit]
file = /etc/trac/trac.ini
Run Code Online (Sandbox Code Playgroud)

这应该发生在 bash 脚本中。我想过使用 sed :寻找正则表达式,\[.+\]\n(\n)+(?=\[)但这似乎不适用于 sed 因为我应该提前知道正则表达式将有多少行并相应地使用N。正则表达式也应该使用 EOF 而不是最终的\[,但是如果我找到为\[.

知道我怎么能做到这一点吗?有没有比 sed 更好的方法?

sed awk text-processing

6
推荐指数
1
解决办法
2484
查看次数

标签 统计

awk ×1

sed ×1

text-processing ×1