Ответ 1
Используйте перенаправление добавления.
for f in *.txt
do
cat footer >> "$f"
done
У меня есть папка, полная текстовых файлов. Мне нужно добавить один и тот же блок текста к каждому из них (и, конечно, перезаписать исходный файл).
Мне было интересно, что для этого будет правильный синтаксис оболочки Bash. Я бы использовал кошку?
Я сделал несколько пакетных скриптов, но я не эксперт Bash. Любые предложения оценили.
Используйте перенаправление добавления.
for f in *.txt
do
cat footer >> "$f"
done
Если вам нужно сделать это с помощью script, вы можете использовать перенаправление эха и добавление, чтобы получить дополнительный текст в файлы.
FILES=pathto/*
for f in $FILES ; do
echo "#extra text" >> $f
done
sed -i.bak "$ a $(<file_block_of_text)" *.txt
Вариант ответа куруми:
sed -i.bak "\$aTEXTTOINSERT" *.txt
Подробнее см. SED: вставить что-то в последнюю строку?