Unix-подобные
В Unix-подобной командной строке (в Linux, OSX и т.д.) Вы можете использовать cat
для печати содержимого файла в STDOUT и >
для перенаправления STDOUT в файл, перезаписывая его содержимое.
cat template.txt > file.txt
Самый простой способ - поместить template.txt
в отдельный каталог, затем вы можете использовать цикл for для воздействия на каждый * .txt в рабочем каталоге:
for f in ./*.txt; do cat /path/to/template.txt > "$f"; done
В системах с bash 4+ (вероятно, это есть у любого современного * nix; проверьте с помощью bash --version
), вы можете использовать расширенную глобализацию, так что вы можете иметь template.txt
в том же каталоге, что и файлы, которые вы хотите перезаписать. записывать:
shopt -s extglob
for f in ./!(*template).txt; do cat template.txt > "$f"; done
Если у вас есть текстовые файлы во многих подкаталогах (ВНИМАНИЕ: ЭТО БУДЕТ ПЕРЕПИСАТЬ ВСЕ ФАЙЛЫ *.txt
В РАБОЧЕМ СПРАВОЧНИКЕ И ВСЕ ЕГО ПОДРАЗДЕЛЕНИЯ, И ВСЕ ИХ ПОДРАЗДЕЛЕНИЯ ...), вы можете использовать globstar:
shopt -s globstar
for f in ./**/*.txt; do cat /path/to/template.txt > "$f"; done
## OR:
shopt -s globstar extglob
for f in ./**/!(*template).txt; do cat template.txt > "$f"; done
Windows
Это работает аналогично, хотя синтаксис другой. Вместо cat
используйте type
:
type template.txt > file.txt
Для работы с каждым .txt
в каталоге:
FOR %F IN (*.txt) DO type C:\path\to\template.txt > %F
Для рекурсивности используйте /R
:
FOR /R %F IN (*.txt) DO type C:\path\to\template.txt > %F