Перенаправление на все файлы в каталоге

Используя awk, как я могу перенаправить данные во все файлы в каталоге?

например, скажем, я хочу перенаправить на file.txt, я сделаю:

echo "abc"|awk '{print >"file.txt"}'

как я могу добиться того же, но для нескольких файлов (фактически всех файлов) в каталоге. в каталоге cirrent есть несколько файлов .txt. поэтому я хочу перенаправить abc на все файлы в текущем каталоге, которые имеют расширение .txt.


person Vijay    schedule 08.08.2012    source источник
comment
возможно с командой tee   -  person Nahuel Fouilleul    schedule 08.08.2012
comment
Я добавил больше описания того, что мне нужно   -  person Vijay    schedule 08.08.2012


Ответы (2)


Вы можете использовать tee:

echo "abc" | tee files/*

Если каталог со всеми этими файлами находится в /files/.

person Jon Lin    schedule 08.08.2012
comment
Я знаю это. Мне нужно было решение внутри awk. - person Vijay; 08.08.2012

Один из способов использования GNU awk:

awk -v str="abc" '{ print str > FILENAME; nextfile }' *.txt

Эта команда перезапишет все содержимое всех файлов с расширением txt строкой abc. Версия GNU вам понадобится из-за инструкции nextfile, которая закрывает текущий файл и начинает обрабатывать следующий.

person Birei    schedule 08.08.2012