【发布时间】:2014-05-03 14:00:29
【问题描述】:
我正在尝试将行号从 grep 传递到 sed。
首先我提取了我想用 sed 打印的开始行和结束行:
grep -n "Start" file1 | cut -d: -f 1 | head -n 1
grep -n "End" file1 | cut -d: -f 1 | head -n 1
现在我需要使用这些数字逐行打印从开始到结束的所有内容。例如
sed -ne '1,30w output1' file1
我不确定如何做到这一点,因为将行号通过管道传输到 sed 将被视为“输入”,对吗?
例子:
Start
some text
some more text
End
Start
some text
some more text
End
由于有不止一个开始和结束,我从 grep 中删除了其余的行号。我应该将 grep 和 sed 结合起来,或者这不可能吗?
【问题讨论】:
-
你为什么要
grep,你为什么不能用sed本身呢?sed -n '/Start/,/End/w output1' file1 -
如果您添加一个示例以及您喜欢输出的方式,将会有所帮助。
-
@clement 你能把它添加为答案吗?
-
您首先对出现的
Start和End的行进行编号,但之后您将使用cut去掉编号。你给这些线编号是为了什么? -
我无法弄清楚实际的问题是什么。