小编Jam*_*ven的帖子

过滤或管道文件的某些部分

我有一个输入文件,其中包含一些用开始和结束标记划分的部分,例如:

line A
line B
@@inline-code-start
line X
line Y
line Z
@@inline-code-end
line C
line D
Run Code Online (Sandbox Code Playgroud)

我想对这个文件应用一个转换,使得 X、Y、Z 行通过一些命令(nl例如)过滤,但其余的行不变地通过。请注意,nl(数字线)跨行累积状态,因此它不是应用于每条线 X、Y、Z 的静态转换。(编辑:有人指出nl可以在不需要累积状态的模式下工作,但我只是nl作为一个例子来简化问题。实际上,该命令是一个更复杂的自定义脚本。我真正在寻找的是for 是将标准过滤器应用于输入文件的一部分的问题的通用解决方案)

输出应如下所示:

line A
line B
     1 line X
     2 line Y
     3 line Z
line C
line D
Run Code Online (Sandbox Code Playgroud)

文件中可能有几个这样的部分需要转换。

更新 2我最初没有指定如果有更多部分会发生什么,例如:

line A
line B
@@inline-code-start
line X
line Y
line Z
@@inline-code-end
line C
line D
 @@inline-code-start
line L
line M
line N …
Run Code Online (Sandbox Code Playgroud)

pipe shell-script text-processing fifo

14
推荐指数
2
解决办法
3541
查看次数

标签 统计

fifo ×1

pipe ×1

shell-script ×1

text-processing ×1