Создать цикл для поиска и замены в файле, затем создать несколько выходных файлов
Я новичок в кодировании, и я искал способ написать цикл, который генерирует несколько файлов после изменения одного аспекта мастер-файла.
Я использовал несколько примеров для начала и могу заставить работать код для изменения и создания 1 файла, но не цикла. Вот код:
for i in 'seq 1 6'; do sed 's/ref.txt/ref${i}.txt/g' CPMIR.as > CPMIR${i}.as
В конце я хотел бы изменить ref.txt в файле CPMIR.as на ref1.txt и вывести новый файл CPMIR1.as, ref2.txt, вывести CPMIR2.as, ref3.txt и вывести CPMIR3.as..... весь путь до 6.
Спасибо за вашу помощь!
2 ответа
Решение
Это может сработать для вас (GNU sed & parallel):
seq 6 | parallel "sed 's/ref\.txt/ref'{}'.txt/g' CPMIR.as >CPMIR{}.as"
Прежде всего, вы не использовали backticks или лучше вы должны использовать $(..)
за $(seq 1 6)
Кроме того, вам нужно использовать double-quotes
при использовании переменных внутри sed
,
Это должно работать:
#!/bin/bash
for i in $(seq 1 6)
do
sed "s/ref.txt/ref${i}.txt/" CPMIR.as > CPMIR${i}.as
done