【发布时间】:2023-03-21 15:44:01
【问题描述】:
使用sed,我如何从文件的开头和/或结尾修剪一个或多个连续 仅空白行? (“仅空白”是指不包含任何非空白字符的行,即空白行或仅包含空白字符的行。)
例如,如果我的文件是:
<blank line>
<line only containing some space/tab characters>
<blank line>
foo
bar
<tab character>
baz
<space character>
<space character><tab character>
qux
<tab character>
那么所需的输出将是:
foo
bar
<tab character>
baz
<space character>
<space character><tab character>
qux
如果必须在单独的 sed 调用中从文件的开头和结尾进行修剪,那没关系,尽管我也对在一次调用中管理所有内容的解决方案感兴趣。
附:这在 Perl / Ruby 等中很容易,但我特别想知道在sed 中是否可行。谢谢!
【问题讨论】:
-
您想完全删除任何运行的纯空白行,但只保留单个纯空白行?
-
不,文件开头/结尾的单行空白行也应该被修剪。
-
这并不能完全回答问题。是否应该删除文件中间的单个 ws-only 行?文件中间连续的 ws-only 行应该折叠成一行还是删除?开头和结尾的所有 ws-only 行都应该删除,这看起来很清楚。
-
我可以把
lisp的链接发给你在sed中实现的吗? -
给你 :-) github.com/shinh/sedlisp !享受,享受! ;-)
标签: sed whitespace removing-whitespace