Как я могу вставить текстовый файл в указанной c строке другого - PullRequest
0 голосов
/ 23 апреля 2020

Я динамически генерирую некоторый код SDK для нескольких наборов API, и мне нужно объединить подмножества файлов, чтобы моя конечная структура импорта работала.

У меня есть файл, давайте назовем его methods_to_import.txt, из которых я я уже извлек строки, которые мне нужно вставить, используя:

awk '/method_imports_im_matching/{print}' file_i_need_to_copy_methods_from.rb > method_to_import.txt

Мне нужно вставить methods_to_import.txt в указанную c строку основного файла my_api.rb, которая выглядит примерно так:

# Models
require 'models/account'
require 'models/account_type'
...

// the line I need to insert the text file into ( ex. line 10 )

# APIs
require 'my_api'

module My Class
  ...
end

Я нашел способы полностью перезаписать файл: echo "foo" > bar.txt

или вставить одну строку в указанную c строку файла: awk 'NR==3{print "Single String, but not the entire file output :("}1' my_api.rb

https://unix.stackexchange.com/questions/271475/insert-text-at-specific-line-number

Возможно, мне нужно l oop каждой строки в файле .txt и построчно вставлять в файл .rb?

Но я не могу понять, как вставить весь текстовый файл в указанную строку c существующего файла. Я уверен, что это можно сделать с помощью комбинации sed || awk. Заранее спасибо.

1 Ответ

4 голосов
/ 23 апреля 2020

будет проще с sed

$ sed '/insert the text file/r methods_to_import.txt' my_api.rb
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...