sed:附加行和数字输出

sed:附加行和数字输出

在 Linux 中,假设想要在第 5 行之前添加以下行(因此第 5 行变为第 6 行)想要通过sed“工具”对输出中的所有行进行编号=

sed -n '5\Insert this line before line nuber 29' FILE

问题=在这个结构中,在哪里对整个输出的行进行编号?

我知道nl等等cat --number,但由于sed它本身为此提供了一个内置工具,因此如果只使用一个工具箱就很好了。

更新:结果应该是这样的,以某种方式:每行都有一个数字,上面的行被挤压在第五行的位置,等等。

1   A line
2   Another line
3   as abovr
4   again
5   Insert this line before line nuber 29
6   This originally was line number 5
7   nearing the end
8   last line

答案1

使用=将打印行号,并在新行上显示该行:

~$ sed '=' myfile
1
a
2
b
3
c
4
d
5
e
6
f
7
g
8
h

如果您使用两次 sed 调用,则可以在同一行上打印:

~$ sed '=' myfile | sed '{N;s/\n/ /}'
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h

您还可以使用以下命令再次插入该行i \

$ sed '5 i\
before 5
' myfile | sed '=' | sed '{N;s/\n/ /}'
1 a
2 b
3 c
4 d
5 before 5
6 e
7 f
8 g
9 h

相关内容