文本:
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