使用awk每隔这么多行插入字符串

Inserting strings every so many lines with awk

我正在尝试插入命令字符串,但我的语法有问题。我试图每隔一行获取“mv”,每隔三行“睡眠”一次,每隔四行“等待”一次。这是我得到的并且一直在玩不同的组合。任何帮助将不胜感激。

awk '{ print; print "mv $NEWEST $RNAME"; }' curl.txt > mv.txt
sleep 2
wait
awk 'NR==3{ print "sleep 2"; }1' mv.txt > sleep.txt
sleep 2
wait
awk 'NR==4{ print "wait"; }1' sleep.txt > wait.txt

这是你想要做的吗?

$ seq 5 | sed '1~1a mv $NEWEST $RNAME\nsleep 2\nwait'

1
mv $NEWEST $RNAME
sleep 2
wait
2
mv $NEWEST $RNAME
sleep 2
wait
3
mv $NEWEST $RNAME
sleep 2
wait
4
mv $NEWEST $RNAME
sleep 2
wait
5
mv $NEWEST $RNAME
sleep 2
wait

您可以通过1~1

更改起始行号和频率

我不太明白你想做什么,但这还不够吗?

awk '{ printf "%s\n%s\n%s\n%s\n", [=10=], "mv $NEWEST $RNAME", "sleep 2", "wait" }' curl.txt