Unix - Comandos de filtro

1

Eu quero saber sobre o "filter-command" que está disponível no Unix. Estou confuso em relação a isso:

  1. Qual é o objetivo do "Filter-Command"?
  2. Quais são os comandos Filter disponíveis no Unix?

Eu li alguns livros / artigos na web, em alguns livros eu encontrei alguns comandos de filtro e em alguns livros eu encontrei alguns outros.

    
por Paresh Mayani 10.09.2010 / 12:03

2 respostas

6

Não tenho certeza do que você está perguntando sem contexto. As ferramentas "tradicionais" do Unix são lidas a partir da entrada padrão e gravadas na saída padrão, para que você possa encadeá-las usando um tubo, que é o | comando:

 ls | grep "banana" | more

As coisas que lêem a entrada padrão e escrevem na saída padrão são filtros.

Existe um artigo aqui: link )

    
por 10.09.2010 / 12:11
2

Um comando de filtro é praticamente qualquer programa de linha de comando no UNIX, na verdade.

Todo programa que pode ler de STDIN e saída para STDOUT pode ser usado como filtro.

Existem exceções, no entanto. Uma dessas exceções é cpio , que pega uma lista de arquivos de STDIN para criar um arquivo na saída.

Existem alguns comandos que parecem não conseguir ler STDIN , mas você deve verificar se esses comandos usam - como parâmetro de arquivo para ler STDIN ou gravar em STDOUT , como cat :

$ cat f - g

Output f’s contents, then standard input, then g’s contents.

Mas mesmo quando seu programa não usa isso, você ainda pode ainda forçar um programa a agir como um filtro:

Por exemplo, use wget e você quer que a saída desse programa seja para STDOUT :

$ wget -O /dev/stdout http://stackoverflow.com/ | less

, por exemplo: Você pode usar /dev/stdin , /dev/stdout e /dev/stderr como arquivos para forçar a leitura de um programa ou saída para os descritores de I / O padrão.

Outra observação: o comprimento do seu tubo pode durar o tempo que você quiser, então você pode canalizar de um programa para outro, basicamente fazendo dele uma longa cadeia de filtros:

$ cat file | xz | ccrypt &>/dev/null
    
por 10.09.2010 / 21:15