percorre a saída de um comando e usa outro comando [duplicado]

5

Como posso usar a saída de um comando - linha por linha - em outro comando? Eu sei como fazer isso com o símbolo% pipe_de% pipe, mas isso usa a saída inteira em um comando. Eu gostaria de ir linha por linha ... Eu acho que preciso combinar o | e | , mas não tenho certeza.

redis-cli keys \* | redis-cli get [key would go here]
    
por d-_-b 06.12.2013 / 03:24

3 respostas

5

Use while para percorrer cada linha:

redis-cli-keys \* | while read key; do redis-cli get "$key"; done
    
por 06.12.2013 / 03:34
9

A resposta xargs seria:

redis-cli keys \* | xargs -L 1 redis-cli get
    
por 06.12.2013 / 03:46
4

Apenas para completar, aqui está a variante for do loop:

$ for key in $(redis-cli-keys \*); do redis-cli get $key; done

NOTA: Isso funciona desde que o $keys não contenha espaços.

    
por 06.12.2013 / 04:01