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?

promediojoey2000
fuente

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).

TOOGAM
fuente
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//

promediojoey2000
fuente
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