Копирование содержимого наборов текстовых файлов в другие наборы текстовых файлов. - PullRequest
0 голосов
/ 08 марта 2019

Я нахожусь в каталоге, содержащем набор папок A1-7 и B1-7, так что, если я дам команду "ls", я увижу следующее.

A1 A2 A3 A4 A5 A6 A7 B1 B2 B3 B4 B5 B6 B7 

Папки B содержат один текстовый файл, а папки A содержат входной файл и сценарий отправки. Файлы названы для содержащих их папок, например, папка A1 содержит A1.inp и A1.sub, а папка B1 содержит B1.txt.

Цель состоит в том, чтобы содержимое текстового файла B1 было скопировано в определенную позицию во входном файле A1, особенно ниже строки текста "xyz". Аналогично, текстовый файл B2 должен быть скопирован во входной файл A2 строки "xyz".

Существует ли одна команда / сценарий, которая может добавить все содержимое текстовых файлов B в соответствующие входные файлы A?

1 Ответ

1 голос
/ 08 марта 2019

Примерно так должно работать:

for i in {1..7}; do sed -i '/xyz/r B${i}/B${i}.txt' A${i}/A${i}.inp; done

Флаг -i для sed означает редактирование файла (A # .inp) на месте. Часть в одинарных кавычках - это команда, которую вы хотите выполнить в этом файле; r <filename> добавляет текст, прочитанный из имя файла (B # .txt).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...