Форум — General Объединение файлов 0 0 Имеется n файлов *.cpp Нужно в начало каждого вставить строчку "#include <iostream>" Как сделать эффективнее? Ссылка
find . -name \*.cpp -type f -print0 |xargs -0 sed -i '1i\#include <iostream>' Teak ★★★★★ (07.04.07 06:59:43 MSD) Показать ответ Ссылка
Ответ на: комментарий от Teak 07.04.07 06:59:43 MSD А если нужно брать текст для вставки из файла? UVV ★★★★★ (07.04.07 07:15:07 MSD) автор топика Показать ответ Ссылка
Ответ на: комментарий от UVV 07.04.07 07:15:07 MSD А поподробнее? Teak ★★★★★ (07.04.07 07:25:00 MSD) Показать ответ Ссылка
Ответ на: комментарий от Teak 07.04.07 07:25:00 MSD Ну, то есть, нужно вставить не "#include <iostream>", а содержимое файла test. UVV ★★★★★ (07.04.07 07:30:36 MSD) автор топика Показать ответы Ссылка
Ответ на: комментарий от UVV 07.04.07 07:30:36 MSD Я бы на перле склепал, а то сложности с пробелами возникают... Teak ★★★★★ (07.04.07 08:15:48 MSD) Ссылка
for i in *.cpp; do cat header $i > $i.tmp; mv $i.tmp $i; done header содержит текст вставки и оканчивается переводом строки annoynimous ★★★★★ (07.04.07 09:35:16 MSD) Показать ответы Ссылка
Ответ на: комментарий от UVV 07.04.07 07:30:36 MSD Ещё вариант (если не охото создавать ещё один файл): cat file | (cat test; cat -) >| file slackophile (07.04.07 12:13:26 MSD) Ссылка
Ответ на: комментарий от annoynimous 07.04.07 09:35:16 MSD Блин, до mv не додумался, времени не было! ;-)) UVV ★★★★★ (07.04.07 12:17:50 MSD) автор топика Ссылка
Ответ на: комментарий от annoynimous 07.04.07 09:35:16 MSD Сделал вот так: for i in *.cpp; do cat header $i > $i.tmp; mv $i.tmp $i; done Почему-то в конце каждой строки из второго файла появился символ ^M. Как его можно убрать? Т.е. появилось что-то типа следующего: Это строки из первого файла А это ^M строки из ^M второго файла ^M UVV ★★★★★ (13.04.07 05:57:44 MSD) автор топика Показать ответ Ссылка
Ответ на: комментарий от UVV 13.04.07 05:57:44 MSD да-да само появилось, а винда тут не причем ... sdio ★★★★★ (13.04.07 08:42:37 MSD) Показать ответ Ссылка