Поскольку замена является статической, а операция замены нескольких строк настолько проста в sed
, можно создать один большой sed
скрипт для выполнения этой работы.
Предположим, что у вас есть номера строк в отдельном файле, linenos.txt
, по одному номеру строки в строке, тогда мы можем создать сценарий (GNU) sed
через
$ awk '{ printf("%dc XXXXXXXXXXXXXXX\n", $0) }' linenos.txt >script.sed
или
$ awk '{ print $0, "c XXXXXXXXXXXXXXX" }' linenos.txt >script.sed
Затем нужно применить его к файлу:
$ sed -f script.sed file >file.new
Примечание. Я никогда не запускал чрезвычайно большой sed
скрипт, поэтому я не знаю, как GNU sed
справляется с этим с точки зрения производительности.