Como posso usar o comm dessa maneira?

Como posso usar o comm dessa maneira?

Pelo que entendi, quero usar o comm -23 file1 file2. file1 é o resultado de finde file2 é cut -c43- list. É possível escrever isso como uma linha e não usar nenhum arquivo (exceto aquele que nomeei de lista)?

Responder1

A substituição de processo é sua amiga aqui:

$ comm -23 <(find /dir -name 'something') <(cut -c43- list)

O formato <(command)aplica um descritor de arquivo temporário ao commande o todo <( )é usado como entrada de arquivo para comm(ou qualquer outro comando).
Vermais sobre substituição de processo aqui. Verifique também man bash:

Substituição de Processo
A substituição de processo permite que a entrada ou saída de um processo seja referenciada usando um nome de arquivo. Assume a forma de <(lista) ou >(lista). A lista de processos é executada de forma assíncrona e sua entrada ou saída aparece como um nome de arquivo. Este nome de arquivo é passado como argumento para o comando atual como resultado da expansão. Se o formulário >(list) for usado, escrever no arquivo fornecerá entrada para a lista. Se a forma <(list) for usada, o arquivo passado como argumento deverá ser lido para obter a saída da lista. A substituição de processo é suportada em sistemas que suportam pipes nomeados (FIFOs) ou o método /dev/fd de nomear arquivos abertos.

informação relacionada