Unix: Como verificar a existência de uma tag no início de cada arquivo antes da inserção?

0

A questão está relacionada com question "Unix: Adiciona um Tag ao início de cada arquivo?".

Como posso colocar a tag apenas nos arquivos que não contêm a tag, como <?php , já?

    
por Community 06.09.2009 / 16:30

3 respostas

1
head -n1 file | grep -q "^<?php" || sed -i "1s/^/<?php /" file
    
por 06.09.2009 / 22:36
2

Versão adequadamente modificada do meu responder à pergunta original :

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

A execução desse comando com -i.bak em vez de -i preservará um backup dos arquivos originais com uma extensão .bak.

Editar: atualizou a correspondência de m/<?php/ para m/^<\?php/ para fazer corresponder apenas o início do arquivo e para escapar do caractere ? .

    
por 06.09.2009 / 16:49
0

Você quer || (OU). Se a mão esquerda for verdadeira, não se incomodará com a mão direita. por exemplo,

test "$(grep PATTERN FILE)" || sed COMMAND FILE
    
por 06.09.2009 / 21:58

Tags