如何在UNIX中将两个行号之间的文本打印到新文件中

时间:2013-02-20 14:59:39

标签: shell unix sed awk

我有一个这样的文件(第一列的数字是行号)

30.<unit id=20>
31....
32.</unit>
33.<unit id=40?
34....
35.</unit>
36<unit id=20>
37...
38.</unit>
39.<unit id=40?
40....
41</unit>

我想在两个行号之间打印行,比如32和39.如何在Unix中完成此操作? 我是unix的新手。 注意:我不想要perl脚本。

4 个答案:

答案 0 :(得分:8)

sed的另一种方式:

 sed -n '32,39p' filename

答案 1 :(得分:1)

sed -n '32,39p' input > output

请注意,这会忽略您的行编号,只需打印第32行到第39行。如果您想匹配字符串,请使用像Fredrik建议的解决方案。

答案 2 :(得分:1)

我想你应该试试这个

sed '32,39!d' input > output

答案 3 :(得分:0)

使用sed

sed -n '/^32/,/^39/p' file