在该行及其倍数下插入相同的单词

在该行及其倍数下插入相同的单词

文本:

my1line
my2line
my3line
my4line
my5line
my6line
my7line
my8line
...

想要插入的单词:

hello

期望的输出:

my1line
my2line
hello
my3line
my4line
hello
my5line
my6line
hello
my7line
my8line
....

每隔几行就反复塞进去,直到用完,有办法吗?

答案1

awk '1; !(NR%2) {print "hello"}' file

打印每一行。每隔两行打印“hello”。

答案2

awk 'NR%2==0{$0=$0"\nhello"}1' filename

输出

my1line
my2line
hello
my3line
my4line
hello
my5line
my6line
hello
my7line
my8line
hello

答案3

使用 GNU sedn-跳过-m地址运算符:

sed '2~2a hello' textfile

-i如果您想就地编辑文件,请使用该选项。

答案4

Gnu sed及其step operator.测试:

seq 100 | sed '3~2 s/.*/hello\n&/'

或者用标准sed.测试:

seq 100 | sed 'n;s/.*/&\nhello/;'

当然使用您的文件作为输入。那么前面的例子就变成了:

sed 'n;s/.*/&\nhello/;' datafile

相关内容