Я знаю, что иду вразрез с потоком, когда я предлагаю это, но я обычно предпочитаю использовать распределение общего назначения как Debian. Сделанное на заказ распределение как другие, которые были предложены, будет работать хорошо, если то, в чем Вы нуждаетесь никогда действительно, пойдет вне предлагаемых функций. Распределение общего назначения обычно намного более гибко и легче адаптировать к серверу другие функции. Кроме того, с распределением общего назначения навыки Вы изучаете поддержание, это является более допускающим повторное использование и непосредственно применимым к другим ситуациям, где Вы используете то распределение.
То, что вы оказывались перед необходимостью использует некоторый код, но не очень:
for I in `ls *.txt`
do
mv ${I} ${I}.tmp
cat ${I}.tmp | awk 'BEGIN {print "Test to add"} {print $0}' > ${I}
rm ${I}.tmp
done
Причина переименования файла сначала состоит в том, что чтение и запись в тот же файл одновременно могут вызвать проблемы (по крайней мере, это делает для меня).
Вы захотите добавить тест там, чтобы удостовериться, что новый файл создается правильно прежде, чем удалить старый.
Ответ при Переполнении стека:
https://stackoverflow.com/questions/520742/prepend-to-multiple-files-in-bash-osx-terminal
Если Вы просто добавляете в конец файла, можно сделать это легко с чем-то как упомянутый ниже код удара.
for i in *.txt
do
echo "This is a test 23" >> $i
done
Нет, простой сценарий удара является способом, которым я занялся бы им.
Строго говоря, я записал бы сценарий удара для вызова sed
чтобы сделать фактическое редактирование файла, но принцип стоит. Вы не собираетесь быть способными выполнить итерации через список файлов без некоторого кода оболочки.