¿Cómo enumerar archivos de texto sin una extensión de archivo .txt?

10

Por ejemplo, ¿cómo puedo replicar:

ls *.txt

cuando mis archivos de texto no tienen el .txtfinal, y en lo que respecta a las extensiones, ¿aparecen igual que muchos otros tipos de archivos?

Alternativamente, ¿es posible enumerar específicamente solo los archivos que NO tienen extensión de archivo?

usuario82212
fuente

Respuestas:

8

Para hacer coincidir los archivos que no tienen una extensión, puede usar el comando

ls | grep -v '\.'

Para hacer coincidir los archivos que no tienen una .txtextensión, puede usar el comando

ls | grep -v '\.txt'

Esto pasará la lista de archivos en el directorio actual a grep, lo que eliminará todos los nombres de archivo que tengan un .(o .txtpara el segundo comando) en ellos.

Yo creo
fuente
¡Gracias! Esto respondió mi pregunta. Además, ¿es posible usar la misma herramienta grep con otros comandos? Por ejemplo, con todos? (para convertir terminaciones de línea)
user82212
1
Sí, grepse puede usar con cualquier comando. El |símbolo se usa para pasar la salida de un comando a otro, y grepcoincidirá con líneas que tienen (o no tienen) texto específico. Pero si desea modificar el texto (que no sea solo imprimir líneas coincidentes), debe echar un vistazo al sedcomando.
iBelieve
Para buscar solo archivos de texto (excluyendo directorios y binarios) use:ls --classify | grep -v '/'.'*'
chaskes el
6

Con ls -ignore="PATTERN"usted puede excluir archivos de un resultado ls.

Por ejemplo, ls --ignore="*.txt"para ignorar los archivos txt.

Vivas84
fuente
3

Simplemente niegue su patrón (nota: shopt -s extglobes obligatorio).

Para mostrar todos los archivos sin extensión:

ls !(*.*)

Para mostrar no txtarchivos, intente:

ls !(*.txt)
kenorb
fuente
0

El comando ls -SX1|lessse ordenará por extensión en una sola columna y los archivos sin una se moverán a la parte superior. Se sugiere canalizar menos como en el ejemplo para directorios con más de unos pocos archivos para limitar la salida a una pantalla llena a la vez.

Elder Geek
fuente
0

Prefiero evitar el uso de grep para operaciones de listado simples.

Para evitar usar grep,

Recomiendo usar ls !(*.*)para buscar archivos sin extensión de archivo, y

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

para excluir extensiones de archivo específicas

computacion
fuente