【发布时间】:2018-01-23 19:46:40
【问题描述】:
我有一个这样的文本文件:
line 1
line 2
*
line 3
*
line 4
line 5
line 6
*
line 7
line 8
我想写出介于两种模式之间的部分(在本例中为 *)。所以如果我想要第一部分,我想得到 p>
line 1
line 2
如果我想得到第三个,那应该是
line 4
line 5
line 6
返回的行应该没有星号,重要的是开头或结尾没有星号。 我正在考虑使用 '*' 作为 sed 或 awk 的分隔符将整个文本“拆分”成列,但我没有成功。任何人都可以帮忙吗?非常感谢。
这是我尝试过的:
sed "/^%/{x;s/^/X/;/^X\\{$choice\\}$/ba;x};d;:a;x;:b;$!{n;/^%/!bb}" "$file"
但这需要在开头有一个 * 并且它还会在之前和之后打印星号。
【问题讨论】:
-
目标是您添加一些自己的代码,以至少展示您为解决这个问题所做的研究工作。
标签: bash design-patterns awk sed split