Qual é a maneira mais fácil de listar arquivos de uma determinada extensão, salvar essa lista em um arquivo de texto, mas omitir as extensões reais quando estiver no arquivo de texto?

0

Isto é para um servidor contra-ataque, onde mapcycle.txt contém todos os mapas encontrados nos mapas / pastas, mas a lista de mapas não deve conter a extensão .bsp.

Exemplo de mapas / pasta:

map1.bsp
map2.bsp

mapcycle.txt deve conter

map1
maps2

Estou ciente de como fazer parte disso:

find /path/to/maps/ -iname *.bsp > /path/to/mapcycle.txt

Mas eu não sei como omitir as extensões .bsp dentro do mapcycle.txt

    
por MALON 05.10.2014 / 21:55

3 respostas

3

Use find e basename :

find maps/ -iname '*.bsp' -exec basename {} .bsp \; > mapcycle.txt

O sinalizador -exec executa o restante da linha de comando (até que ; ou + seja encontrado) substituindo {} pelo nome do arquivo de um arquivo selecionado (incluindo o caminho). basename /path/to/filename.suffix .suffix removerá o sufixo e o caminho e deixará apenas filename .

    
por muru 05.10.2014 / 22:06
1

Será:

% bl0ck_qu0te%     
por EdiD 05.10.2014 / 22:05
1
cd  to map folder 

e execute

ls *.bsp |sed s/\.[^\.]*$// >> list.txt
    
por g_p 05.10.2014 / 22:09