Вопрос связан с вопросом "Unix: Добавить Тег к началу каждого файла?".
Как я могу поместить тег только в файлы, которые не содержат тег, такой как <?php
, уже?
Соответственно измененная версия моего ответа на исходный вопрос:
perl -0777 -p -i -e 's/^/<?php/g unless m/^<\?php/' testfile
Выполнение этой команды с -i.bak
вместо -i
сохранит резервное копирование исходных файлов с .bak расширением.
Править: Обновленный соответствие от m/<?php/
кому: m/^<\?php/
заставить его соответствовать только началу файла и выйти ?
символ.
Вы хотите || (ИЛИ). Если левая рука будет верна, то она не обеспокоится правой рукой. например.
test "$(grep PATTERN FILE)" || sed COMMAND FILE
test $( )
часть здесь не нужна, и даже повреждает целый тест. grep -q blah ||
достаточно.
– grawity
06.09.2009, 23:33