Как Вы вставили бы сообщение авторского права в самом верху каждого файла?
#!/bin/bash
for file in *; do
echo "Copyright" > tempfile;
cat $file >> tempfile;
mv tempfile $file;
done
Рекурсивное решение (находит все файлы .txt
во всех подкаталогах):
#!/bin/bash
for file in $(find . -type f -name \*.txt); do
echo "Copyright" > copyright-file.txt;
echo "" >> copyright-file.txt;
cat $file >> copyright-file.txt;
mv copyright-file.txt $file;
done
Будьте осторожны; если в именах файлов есть пробелы, вы можете получить неожиданное поведение.
Вы можете использовать этот простой скрипт
#!/bin/bash
# Usage: script.sh file
cat copyright.tpl $1 > tmp
mv $1 $1.tmp # optional
mv tmp $1
Список файлов можно управлять с помощью утилиты поиска
sed
echo "Copyright" > tempfile
sed -i.bak "1i $(<tempfile)" file*
Или оболочка
#!/bin/bash
shopt -s nullglob
for file in *; do
if [ -f "$file" ];then
echo "Copyright" > tempfile
cat "$file" >> tempfile;
mv tempfile "$file";
fi
done
, чтобы сделать это рекурсивно, если у вас bash 4.0
#!/bin/bash
shopt -s nullglob
shopt -s globstar
for file in /path/**
do
if [ -f "$file" ];then
echo "Copyright" > tempfile
cat "$file" >> tempfile;
mv tempfile "$file";
fi
done
или с помощью find
find /path -type f | while read -r file
do
echo "Copyright" > tempfile
cat "$file" >> tempfile;
mv tempfile "$file";
done