Estou em um diretório onde o tree
comando running produz algo assim:
├── directory1
│ └── image_sequence
│ ├── image.0001.jpg
│ ├── image.0002.jpg
│ ├── image.0003.jpg
│ ├── image.0004.jpg
│ ├── image.0005.jpg
│ └── image.0006.jpg
│
└── directory2
├── somefile.ext
└── someanotherfile.ext2
A sequência de imagens dentro image_sequence
produz uma grande listagem que eu quero cortar. Minha saída desejada é algo como abaixo:
├── directory1
│ └── image_sequence
│ └── image.####.jpg
│
└── directory2
├── somefile.ext
└── someanotherfile.ext2
A saída do tree
comando pode ser modificada de alguma forma?
Tente isto:
/.../d;
exclui todas as linhas contendo├── image.[0-9]+.jpg
entradas (pseudo-padrão)s/.../\1####\2/
substitui a última linha└── image.[0-9]+.jpg
Resultado:
É claro que isso só funcionará se todos os arquivos
image_sequence
corresponderem ao padrão de imagem e modificarão os nomes dos arquivos em outros diretórios que correspondam aos padrões. Se o último arquivo,image_sequence
por exemplo, forreadme.txt
, você removerá todas as entradas de imagem.Você pode substituir as partes numéricas dos nomes de arquivos sequenciais por
#
s, usando umased
expressão (semelhante à segunda na resposta de Freddy ).uniq
pode então remover as linhas duplicadas:Isso ainda deixará duas entradas para as imagens (porque a linha final usa um símbolo diferente na parte do desenho da árvore), mas ainda reduziu a lista a um tamanho gerenciável: