LS pero excluye sufijos


0

Tengo archivos

foo.mp3

bar baz.mp3

bar baz 2.mp3

¿Qué comando generaría lo siguiente?

foo

bar \ baz

bar \ baz \ 2

Sé que ls -1bmaneja los escapes, pero ¿cómo corto .mp3el final?

Respuestas:


0

ls -1 | cut -d "." -f 1

corta el primer período y todo lo que sigue. Trata los períodos como un separador y muestra solo texto en el primer campo, antes de que ocurra el separador. Si sus nombres de archivo tienen solo una extensión como máximo (cero o un período, total), esto puede funcionar (así de simple).

ls -1b | cut -d "." -f 1

reemplaza los espacios con "\" en Linux. Sin embargo, tenga en cuenta que también tiene la etiqueta Unix en esta pregunta. Y, la opción "-b" en "ls" no es necesariamente compatible con todas las variaciones de Unix. (No se admite tanto como -l (largo) o -1 (columna única).


Esto también tiene el efecto de eliminar los archivos ocultos (que comienzan con a .). ls -latodavía muestra la información, solo que no hay partes de nombre de archivo
Xen2050

1

Lo tengo trabajando con ls -1b | sed s/\.mp3//


Votación a favor. Pensé que había una mejor manera, pero en ese momento estaba más interesado en proporcionar una respuesta utilizable de inmediato. ls -1 | sed s/\\.mp3$//funciona bien El $ ayuda a eliminar ".mp3.zip" de ser excluido, y dos barras invertidas deben usarse si su shell usa la barra invertida como un carácter de escape, lo cual es común en Unix. La única desventaja es que sed es compatible con menos Unix diferentes, pero sed es bastante común y vale la pena intentarlo. ¿Es truna opción viable también?
TOOGAM
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.