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

10

Por exemplo, como posso replicar:

ls *.txt

quando meus arquivos de texto estão faltando o .txtfinal e, no que diz respeito às extensões, aparecem iguais a muitos outros tipos de arquivo?

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

user82212
fonte

Respostas:

8

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

ls | grep -v '\.'

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

ls | grep -v '\.txt'

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

Acredito
fonte
Obrigado! Isso respondeu à minha pergunta. Além disso, é possível usar a mesma ferramenta grep com outros comandos? Por exemplo, com todos? (para converter terminações de linha)
user82212 22/01
11
Sim, greppode ser usado com qualquer comando. O |símbolo é usado para passar a saída de um comando para outro e grepcorresponderá a linhas que possuem (ou não têm) texto específico. Mas se você deseja modificar o texto (além de apenas imprimir linhas correspondentes), consulte o sedcomando.
IBelieve
Para encontrar apenas arquivos de texto (excluindo diretórios e binários), use:ls --classify | grep -v '/'.'*'
chaskes
6

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

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

Vivas84
fonte
3

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

Para exibir todos os arquivos sem extensão:

ls !(*.*)

Para mostrar não txtarquivos, tente:

ls !(*.txt)
kenorb
fonte
0

O comando ls -SX1|lessclassificará por extensão em uma única coluna e os arquivos sem um serão movidos para o topo. A 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 por vez.

Elder Geek
fonte
0

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

Para evitar o uso grep,

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

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

excluir extensões de arquivo específicas

computerfreak
fonte