每N行后在文本文件中添加一行

时间:2017-02-28 22:36:56

标签: unix awk

您好我有一个Unix命令,它会生成一个ip地址列表以及其他列信息。我想在命令中添加一些内容,使其显示为一组3行,然后是空格或----然后是接下来的3行,依此类推。

我怎样才能做到这一点?

例如:

1.2.3.4    xy
1.3.5.7    ab
1.25.7.9   cd
-------------
1.25.7.8   kl
1.3.4.5    mn
1.25.7.8   op
-------------
1.24.5.6   la
1.3.4.5    ka
1.25.7.8   xz

2 个答案:

答案 0 :(得分:0)

您可以使用awk在每40行后打印一个额外的行:

awk '{ print $0; if(++i % 40 == 0) printf("-------------\n") }' file

% 40更改为% 3以在每3行后打印该额外行。

答案 1 :(得分:0)

$ seq 9 | awk 'NR>1 && (NR%3)==1{print "---"} 1'
1
2
3
---
4
5
6
---
7
8
9