Не анализируйте вывод find
тот путь. Это будет работать, если Ваши файлы не будут содержать специальных символов, но вызвать команду на файлы, найденные find
, это легче и более устойчиво для создания find
назовите команду:
find "$new_directory" -name '*.css' -o -name '*.js' -exec grep … {} +
Затем grep
правильный инструмент не должен выполнять текстовую замену; это - только средство поиска. sed
потоковый редактор, и его наиболее широко использованной функцией является regexp замена. Принятие GNU sed (такой, как найдено на Linux) и предположение, что regexp в основном корректен, т.е. что Вы хотите соответствовать всем последовательностям letter-or-digit-or-:._-
сопровождаемый вероятно выглядящим расширением как имена файлов, вот a sed
звоните в замену DIR1/DIR2/FILE.EXT
FILE.EXT
везде:
sed -e 's![/A-Za-z0-9:._-]*/\([A-Za-z0-9:._-]*\.\(png\|jpg\|gif\|tif\|css\)\)!!g'
Соединяя обе части, если Вы хотите сделать замены на месте, самый легкий путь состоит в том, чтобы использовать sed's GNU -i
опция, которая делает просто это.
find "$directory" -name '*.css' -o -name '*.js' \
-exec sed -e 's![/A-Za-z0-9:._-]*/\([A-Za-z0-9:._-]*\.\(png\|jpg\|gif\|tif\|css\)\)!!g' {} +
Если Вы захотите положить замены на другое место, то Вам будет нужно немного промежуточного связующего звена оболочки для построения названий новых файлов.
find "$old_directory" -name '*.css' -o -name '*.js' \
-exec sh -c 'sed -e '\''s![/A-Za-z0-9:._-]*/\([A-Za-z0-9:._-]*\.\(png\|jpg\|gif\|tif\|css\)\)!!g'\' <"$0" >"/new/directory/$0"' {} \;
Отметьте использование '\''
помещать одинарную кавычку в единственно заключенном в кавычки отрывке оболочки. -exec … {} \;
средства выполнить команду однажды на каждом файле, в отличие от -exec … {} +
который работает на команде как можно больше файлов в одном пакете.
В основном просто необходимо отредактировать меню начальной загрузки личинки.
Как корень, или использующий sudo, редактирование /boot/grub/menu.lst
Первое, что нужно сделать является изменением значение тайм-аута к чему-то больше к Вашей симпатии. timeout=30
Теперь Вы захотите ввести запись для своего жесткого диска Windows. Это должно выглядеть примерно так.
title Windows
rootnoverify (hd0,0)
chainloader +1
Хитрая часть понимает, как личинка обращается к жестким дискам и разделам. (hd0,0)
означает первый диск и первый раздел. Посмотрите на свою существующую запись личинки для Вашей существующей установки Linux. Если это - что-то как (hd0,2)
, можно быть довольно уверены, что диск Windows будет (hd1,0)
.
В меню личинки, default=
относится к записи меню, что личинка примет значение по умолчанию к на начальной загрузке. Первая запись будет 0
, второе было бы 1
и так далее. Если бы Вы хотели изменить свой выбор начальной загрузки по умолчанию, то Вы могли бы или измениться default=
к записи Вы хотите (такой как default=0
), или сделайте ту запись первым в меню.