У меня есть 2 файла. Файл 1: источник. sh Файл 2: место назначения. sh
Я хочу вставить содержимое файла 1 в файл 2. Но я не хочу вставлять содержимое в конце файл. Последняя строка файла 2: "}"
Я хочу вставить содержимое файла 1 в файл 2 перед "}"
Ниже приведен мой код:
filename50 - /path/of/the/file #source
my_file4 - /path/of/the/file #destination
cat "$my_file4" >> "$filename50"
Приведенный выше код вставляет код в конец файла ... Может кто-нибудь помочь мне вставить содержимое в целевой файл до } Любая помощь приветствуется.
Пример кода:
Источник. sh
a
b
c
Пункт назначения . sh
{
w
e
r
t
y
}
Ожидаемый вывод:
{
w
e
r
t
y
a
b
c
}
Содержимое в источнике. sh должно быть вставлено в место назначения. sh перед}
Мой точный код: Soure. sh
xxx_ecmwf_scoring_state_machine_arn = "${aws_sfn_state_machine.xxx_ecmwf_main_state_machine.id}"
xxx_ecmwf_etl_state_machine_arn = "${aws_sfn_state_machine.xxx_ecmwf_etl_state_machine.id}"
xxx_ecmwf_scoring_function_name = "${aws_lambda_function.invoke_xxx_ecmwf_scoring_state_machine_lambda.function_name}"
Пункт назначения. sh
{
zzz_ecmwf_scoring_state_machine_arn = "${aws_sfn_state_machine.zzz_ecmwf_main_state_machine.id}"
zzz_ecmwf_etl_state_machine_arn = "${aws_sfn_state_machine.zzz_ecmwf_etl_state_machine.id}"
zzz_ecmwf_scoring_function_name = "${aws_lambda_function.invoke_zzz_ecmwf_scoring_state_machine_lambda.function_name}"
ccc_ecmwf_scoring_state_machine_arn = "${aws_sfn_state_machine.ccc_ecmwf_main_state_machine.id}"
ccc_ecmwf_etl_state_machine_arn = "${aws_sfn_state_machine.ccc_ecmwf_etl_state_machine.id}"
ccc_ecmwf_scoring_function_name = "${aws_lambda_function.invoke_ccc_ecmwf_scoring_state_machine_lambda.function_name}"
rrr-ltf_ecmwf_scoring_state_machine_arn = "${aws_sfn_state_machine.rrr-ltf_ecmwf_main_state_machine.id}"
rrr-ltf_ecmwf_etl_state_machine_arn = "${aws_sfn_state_machine.rrr-ltf_ecmwf_etl_state_machine.id}"
rrr-ltf_ecmwf_scoring_function_name = "${aws_lambda_function.invoke_rrr-ltf_ecmwf_scoring_state_machine_lambda.function_name}"
rrr_ecmwf_scoring_state_machine_arn = "${aws_sfn_state_machine.rrr_ecmwf_main_state_machine.id}"
rrr_ecmwf_etl_state_machine_arn = "${aws_sfn_state_machine.rrr_ecmwf_etl_state_machine.id}"
rrr_ecmwf_scoring_function_name = "${aws_lambda_function.invoke_rrr_ecmwf_scoring_state_machine_lambda.function_name}"
}
Мне нужно вставить источник. sh в место назначения. sh перед "}"
Я использовал
{ head -n -1 "$filenamelocalsource"; cat "$my_destination"; tail -n 1 "$filenamelocalsource"; } > tmp
mv tmp "$filenamelocaldestination"
Мой вывод:
ttt_ecmwf_scoring_state_machine_arn = "${aws_sfn_state_machine.ttt_ecmwf_main_state_machine.id}"
ttt_ecmwf_etl_state_machine_arn = "${aws_sfn_state_machine.ttt_ecmwf_etl_state_machine.id}"
continuum2_ecmwf_scoring_function_name = "${aws_lambda_function.invoke_ttt_ecmwf_scoring_state_machine_lambda.function_name}"
**}**
mmm_ecmwf_scoring_state_machine_arn = "${aws_sfn_state_machine.mmm_ecmwf_main_state_machine.id}"
mmm_ecmwf_etl_state_machine_arn = "${aws_sfn_state_machine.mmm_ecmwf_etl_state_machine.id}"
mmm_ecmwf_scoring_function_name = "${aws_lambda_function.invoke_mmm_ecmwf_scoring_state_machine_lambda.function_name}"
Я выполнил команду { echo "---------"; nl "$filenamelocal" | tail -2; echo "---------"; }
![enter image description here](https://i.stack.imgur.com/NrI3h.png)