Как я могу вставить новую строку в текстовый файл через каждые две другие строки?
Начиная с этого,
example.txt
1.qwer
2.asdf
3.xzcv
4.cbvn
5.erty
Идя к этому,
apendedtext.txt
1.append
2.qwer
3.asdf
4.append
5.xzcv
6.cbvn
7.append
2 ответа
Предполагая, что вы добавили номера строк для простоты и что в выводе отсутствует 8-я строка "erty", вы можете обойтись простым однострочным awk:
# ┌─ input ┌─ output
awk 'NR % 2 {print "append"} {print}' < example.txt > apendedtext.txt
# │ └─ Print the original line
# └─ Append if line has even index
Если вы хотите также манипулировать номерами строк, вы можете удалить и добавить их обратно:
( sed -E 's/[0-9]*\.//g'| awk 'NR % 2 {print (++i) "." "append"} {print (++i) "." $0}' ) < example.txt > apendedtext.txt
# └─ Remove line number └─ Prepend a counter ─┘
awk '{print;} NR% 2 == 0 {print "append"; }'example.txt> appended.txt