Tack uma avaliação de curto-circuito após grep :
grep -q 'search_pattern' /file && : >/newfile
-
grep -qnão produz saída no STDOUT, apenas sai com o status de saída0se o padrão for encontrado no arquivo -
Se o padrão for encontrado (
&&), crie um arquivo/newfileby: >/newfile.
Você também pode usar a abordagem usual touch /newfile ou, em bash , um redirecionamento vazio - >/newfile também.
Apenas para observar, se o arquivo já existir, então touch alteraria apenas os registros de data e hora relevantes sem truncar o arquivo. E o redirecionamento vazio >/newfile não é suportado em todas as shells on-the-go (por exemplo, em zsh ), onde você precisa enviar manualmente o EOF.