Добавьте набор команд в начало файлов multipls

Добавьте набор команд в начало файлов multipls

Мне нужно написать скрипт для замены части файла на другую. Я обрабатываю сотни файлов.

У меня есть список команд, которые нужно добавить в кучу текстовых файлов. Но в файлах у меня есть общие команды в начале.

Я просто хочу заменить список команд моим списком команд. Дополнительная информация приведена ниже.

Исходный файл

%apj=E:\Work\Informatin\Regarding work\DND.apj
%mem=4GB
%nprocshared=2
#p oyu opsd qtnv/1-a(x) kglgg=uioewr

Application 

0 1
 X                 -3.66480600    0.10278400   -0.00655500
 Y                 -4.11487100    1.45621700   -0.05226200
 Z                 -5.10300200    1.90042600    0.83864800

 1 2 1.0 13 1.0 23 1.0
 2 3 1.5 4 1.5
 3 5 1.5 6 1.0
 4 7 1.5 8 1.0

Символы, которые я хочу использовать для замены

%apj=D:\Store\Data\Diff All\SMC.apj
%mem=800MB
%nprocshared=4
#p udf AMER hbvn/3-b(n) huggh=whea

Use

0 1
 X                 -3.66480600    0.10278400   -0.00655500
 Y                 -4.11487100    1.45621700   -0.05226200
 Z                 -5.10300200    1.90042600    0.83864800

После замены моим списком команд я также хочу удалить символы, которые находятся после пустой строки, т.е. в следующих строках, и сохранить пустое место.

1 2 1.0 13 1.0 23 1.0
2 3 1.5 4 1.5
3 5 1.5 6 1.0
4 7 1.5 8 1.0

решение1

Я думаю, это то, что вам нужно:

sed '1,6d
7c%apj=D:\Store\Data\Diff All\SMC.apj\
%mem=800MB\
%nprocshared=4\
#p udf AMER hbvn/3-b(n) huggh=whea\
\
Use\

/^$/q' filename

Вместо замены строка за строкой, первые шесть строк удаляются ( 1,6d), а седьмая заменяется новым заголовком, вставленным с помощью cкоманды. Наконец, обработка останавливается на следующей пустой строке.

Если результат соответствует ожидаемому, добавьте опцию -iдля выполнения замены непосредственно в файле (GNU sed, адаптировано для версии BSD).

Связанный контент