Supondo que não há espaços ou similares em nenhum dos seus nomes de arquivos, existem algumas maneiras de fazer isso. Uma é apenas usar uma matriz:
files=( $(find -mtime -2) )
a=${files[1]}
b=${files[2]}
files será uma matriz de todos os caminhos gerados por find em ordem, indexados de zero. Você pode obter as linhas que quiser com isso. Aqui salvei a segunda e a terceira linhas em a e b , mas você também pode usar os elementos da matriz diretamente.
Uma alternativa se você tiver o GNU find ou outro com a opção printf é usá-lo em combinação com read e substituição de processos :
read junk a b junk < <(find -printf '%p ')
Este transforma toda a saída de find em uma única linha e fornece essa linha como entrada para read , o que salva a primeira palavra (caminho) em junk, o segundo em a , o terceiro em b e o restante da linha em junk novamente.
Da mesma forma, você pode introduzir o paste command para o mesmo efeito em qualquer POSIX sistema compatível:
read junk a b junk < <(find -mtime -2 | paste -s)
paste -s converterá sua entrada em uma única linha separada por tabulação, com a qual read poderá lidar novamente.
No caso geral, se você estiver satisfeito em executar o comando principal mais de uma vez (não é necessário aqui), você pode usar sed facilmente:
find | sed -n 2p
Isso imprimirá apenas a segunda linha da saída, suprimindo a saída comum com -n e selecionando a linha 2 para p rint. Você também pode unir head e tail para o mesmo efeito, o que provavelmente será mais eficiente em um arquivo muito longo.
Todos os itens acima têm o mesmo efeito de armazenar as segundas e terceiras linhas em a e b , e todos ainda têm a suposição de que não há espaços, tabulações, novas linhas ou quaisquer outros caracteres que aconteçam esteja em seu valor do separador de campo de entrada ( IFS ) em qualquer um dos nomes de arquivo.
Note que a ordem de saída de find é indefinida, então "segundo arquivo "não é realmente um identificador útil, a menos que você esteja organizando para que seja solicitado de outra maneira. É provável que seja algo próximo da ordem de criação em muitos casos, mas não em todos.