Existem vantagens adicionais em criar um arquivo e enviá-lo para grep, além de conveniência? A conveniência é que, quando recupero comandos como os que estão abaixo do meu histórico, o cursor está no final da linha; portanto, é fácil modificar o comando com texto diferente para grep no mesmo arquivo.
Então, que outras vantagens podem ter para a seguinte convenção:
cat /var/tmp/trace.2043925204.xt | grep -in profile
cat /var/tmp/trace.2043925204.xt | grep -n Profile-Main
ao invés de:
grep -in profile /var/tmp/trace.2043925204.xt
grep -n Profile-Main /var/tmp/trace.2043925204.xt
cat
é muito mais claro do que ler<
. Ou talvez apenas para nós, que pensamos que o Unix e o bash poderiam aprender muito com o VMS e o DCL.Não há vantagem. Seu cursor estar no final também não importa muito se você o estrutura assim:
< inputfile grep -args foo
fonte
Você simplesmente não precisa usar gato nesta situação. É desnecessário e uma perda de tempo, porque ferramentas como o grep tomam nomes de arquivos como argumentos.
Atualização: Obrigado, @Andy Lester, por apontar que esses horários não levam em conta o cache do disco. Eu aprendi algo novo! Mas a economia de uma fração de segundo não faz muita diferença de qualquer maneira. Eu apenas acho que colocar o gato no grep não é uma maneira lógica de fazer as coisas. É como pedir a alguém para ajudá-lo com um problema, quando você é perfeitamente capaz de resolvê-lo.
fonte
A facilidade de edição é a única vantagem real, e se você estiver fazendo isso na linha de comando, qualquer tempo adicional necessário para executar
cat
e executar o pipe não fará realmente diferença.Não há razão para fazê-lo em um shell script, no entanto.
fonte
Não há benefício algum. Em vez de se preocupar em modificar os comandos, aprenda a navegar melhor na linha de comando do shell com teclas e atalhos do acelerador.
fonte
Não e pode até ser minuciosamente mais lento no exemplo que você dá.
A
pipe
é criado entre cat e grep, o que não é necessário ao passar o nome do arquivo diretamente para grep. No entanto, não creio que, em hipótese alguma, você observe limitações de taxa de transferência por causa disso.Outras vantagens da entrada de tubulação no grep incluem processamento adicional anterior, como o uso de utilitários com recursos mais avançados de leitura de arquivos. (Veja
tee
,zcat
entre outros).fonte