Вопрос связан с вопросом «Unix: добавить тег в начало каждого файла?».

Как добавить тег только к файлам, которые не содержат тег, например <?php , уже?

3 ответа3

2

Подходяще модифицированная версия моего ответа на оригинальный вопрос:

perl -0777 -p -i -e 's/^/<?php/g unless m/^<\?php/' testfile

Выполнение этой команды с -i.bak вместо -i сохранит резервную копию исходных файлов с расширением .bak.

Изменить: Обновлен матч с m/<?php/ to m/^<\?php/ чтобы он соответствовал только началу файла, и чтобы избежать ? персонаж.

1
head -n1 file | grep -q "^<?php" || sed -i "1s/^/<?php /" file
0

Вы хотите || (ИЛИ ЖЕ). Если левая рука верна, она не будет беспокоить правую руку. например

test "$(grep PATTERN FILE)" || sed COMMAND FILE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .