小编lev*_*ied的帖子

使用 csplit 排除分隔符

是否可以使用 csplit 删除分隔符?例子:

$ cat in
abc
---
def
---
ghi
$ csplit -q in /-/ '{*}'
$ ls x*
xx00  xx01  xx02
$ head xx*
==> xx00 <==
abc

==> xx01 <==
---
def

==> xx02 <==
---
ghi
Run Code Online (Sandbox Code Playgroud)

而不是它所做的,即拆分并保留分隔符,是否可以要求它拆分并删除分隔符?

也就是说,所需的输出是这样的:

$ sed -i '/-/d' xx*
$ head xx*
==> xx00 <==
abc

==> xx01 <==
def

==> xx02 <==
ghi
Run Code Online (Sandbox Code Playgroud)

虽然可以像上面那样分两步完成,但是可以一步完成吗?

如果不能用 csplit 完成,有没有比上面的两个调用(csplit + sed)更短的一步法?不偏爱使用的工具,只要它具有合理的可读性。

csplit

7
推荐指数
2
解决办法
1801
查看次数

标签 统计

csplit ×1