Adicione argumentos à última chamada de 'find… -exec $ COMMAND {} +'

1

Estou gerando ctags usando algo como a seguinte linha

find -iname '*.[hc]' -exec ctags -a --sort=no {} +

O resultado é que as tags não são classificadas. Para isso estou usando

sort -u -o tags tags

O que eu estou curioso sobre, é possível fazer tudo isso em find ? Em outras palavras, posso instruir find a usar --sort=no para todas as mas últimas invocações de ctags, quando usaria --sort=yes ?

A forma atual é suficiente (e ctags chama internamente sort -u -o $TAGFILE $TAGFILE de qualquer forma), mas estou curioso para saber se isso é possível.

    
por graywolf 04.08.2015 / 15:50

1 resposta

1

Tenho certeza de que find não pode fazer isso. Se, em vez de -exec {} , você usar a impressão clássica para xargs (e os nomes dos arquivos não contêm caracteres especiais para shell como espaço, valor ou cotações, ou você se dá ao trabalho de protegê-los) você pode identificar e "corrigir" o último grupo = linha:

find -iname pattern | xargs echo ctags -a --sort=no | sed '$s/sort=no/sort=yes/' | sh 

Mas, como você pergunta implicitamente, por que se incomodar quando você pode simplesmente executar o sort ?

    
por 05.08.2015 / 06:16

Tags