Como listar arquivos de texto sem uma extensão de arquivo .txt?

9

Por exemplo, como posso replicar:

ls *.txt

quando meus arquivos de texto estão faltando o .txt final e, na medida em que as extensões vão aparecer o mesmo que muitos outros tipos de arquivo?

Alternativamente, é possível listar especificamente apenas os arquivos que NÃO possuem extensão de arquivo?

    
por user82212 22.01.2013 / 21:10

5 respostas

7

Para corresponder arquivos que não possuem uma extensão, você pode usar o comando

ls | grep -v '\.'

Para corresponder arquivos que não têm uma extensão .txt , você pode usar o comando

ls | grep -v '\.txt'

Isso passará a lista de arquivos no diretório atual para grep , o que removerá todos os nomes de arquivos que tenham . (ou .txt para o segundo comando) neles.

    
por iBelieve 22.01.2013 / 21:25
6

Com ls -ignore="PATTERN" , você pode excluir arquivos de um resultado ls.

Por exemplo, ls --ignore="*.txt" para ignorar arquivos txt.

    
por Vivas84 22.01.2013 / 21:44
3

Simplesmente negue seu padrão (nota: shopt -s extglob é obrigatório).

Para exibir todos os arquivos sem extensão:

ls !(*.*)

Para mostrar arquivos que não são txt , tente:

ls !(*.txt)
    
por kenorb 22.12.2015 / 00:28
0

O comando ls -SX1|less classificará por extensão em uma única coluna e os arquivos sem um serão movidos para o topo. Tubulação através de menos como no exemplo é sugerida para diretórios com mais de alguns arquivos para limitar a saída a uma tela cheia de cada vez.

    
por Elder Geek 21.12.2015 / 23:58
0

Eu prefiro evitar o uso do grep para operações simples de listagem.

Para evitar o uso de grep ,

Eu recomendo usar ls !(*.*) para encontrar arquivos sem extensão de arquivo, e

ls -I "*.gz" -I "*.tz" ou ls --ignore={"*.jpg","*.png","*.bmp"}

para excluir extensões de arquivo específicas

    
por computingfreak 24.04.2017 / 07:27