Я извлекаю раздел из файла и хочу заменить строку в другом файле этими многострочными данными.В настоящее время я выводлю в файл, но предпочитаю использовать переменную.
Например,
R 0x00007d04 0x70040000
[OVERWRITE_1]
C "- Starting Execution"
Становится:
R 0x00007d04 0x70040000
W 0x00001118 0x0d1f4e3a
W 0x0000111c 0xa3795ac8
W 0x00001120 0xc50e69d5
C "- Starting Execution"
Вот что у меня есть:
START="R 0x00007fd0 0x00000000 # CSR:014 (CSRCID-OPT2)"
END="W 0x00007f80"
FILE=file.txt
#Retrieve text between sections above to variable
OUTPUT=$(sed -n "/^$START$/,/$END/ { /^$START$/d ; /$END/d ; /^$/d ; p }"
$FILE)
echo "$OUTPUT" > tmp.txt
#This line currently appends after [OVERWRITE_1]
sed '/\[OVERWRITE_1\]/r tmp.txt' test.asm
Что выводит это:
R 0x00007d04 0x70040000
[OVERWRITE_1]
W 0x00001118 0x0d1f4e3a
W 0x0000111c 0xa3795ac8
W 0x00001120 0xc50e69d5
C "- Starting Execution"
Я знаю, что в этот момент я могу удалить строку, но я чувствую, что другие могут захотеть узнать это также, и я не нашелхорошее решение.