Вопрос связан с вопросом «Unix: добавить тег в начало каждого файла?».
Как добавить тег только к файлам, которые не содержат тег, например <?php
, уже?
Вопрос связан с вопросом «Unix: добавить тег в начало каждого файла?».
Как добавить тег только к файлам, которые не содержат тег, например <?php
, уже?
Подходяще модифицированная версия моего ответа на оригинальный вопрос:
perl -0777 -p -i -e 's/^/<?php/g unless m/^<\?php/' testfile
Выполнение этой команды с -i.bak
вместо -i
сохранит резервную копию исходных файлов с расширением .bak.
Изменить: Обновлен матч с m/<?php/
to m/^<\?php/
чтобы он соответствовал только началу файла, и чтобы избежать ?
персонаж.
head -n1 file | grep -q "^<?php" || sed -i "1s/^/<?php /" file
Вы хотите || (ИЛИ ЖЕ). Если левая рука верна, она не будет беспокоить правую руку. например
test "$(grep PATTERN FILE)" || sed COMMAND FILE