Portanto, tenho um diretório onde desejo abrir o único arquivo desse diretório que pode ser lido por humanos. Eu uso file *
para imprimir o tipo de cada arquivo, e um arquivo é exibido como texto ASCII. Como posso redirecionar esse arquivo específico para cat ou menos para exibir seu conteúdo?
EDITAR:
Vocês são incríveis. Estou tentando cada um.
Você pode usar
awk
para procurar arquivos contendo texto ASCII:Na verdade, isso também funciona para diretórios que contêm vários arquivos de texto.
A função bash a seguir examinará os arquivos no diretório atual; se exatamente um deles relatar como sendo "texto ASCII", será
cat
esse arquivo.Aqui está uma maneira segura de abrir o que
file
pensa ser arquivos de texto no diretório atual emvim
. Claro, você pode mudarvim
paraecho
apenas imprimir os nomes.EDIT: use dois
#
sinais na expansão do parâmetro para lidar com nomes de arquivos com um:
neles.Com
zsh
, você pode definir uma função como:Que você poderia usar em qualificadores glob como:
Para visualizar os arquivos regulares não vazios (
L+0
para comprimento maior que 0) (.
) no diretório atual que são textos de acordo comfile
.Para apenas
less
um arquivo se for um texto ASCII:Para listar arquivos de texto de maneira ingênua, mas fácil de entender:
O acima não é muito rápido, no entanto. Uma maneira mais rápida seria usar
file -f
para evitar invocações múltiplasfile
e :grep