bash - solo - listar directorios y subdirectorios linux
Usando ls, ¿cómo listar archivos sin imprimir la extensión(la parte después del punto)? (3)
usando sed?
ls -1 | sed -e ''s//..*$//''
Supongamos que tengo un directorio con algunos archivos:
$ ls
a.c b.c e.c k.cpp s.java
¿Cómo puedo mostrar el resultado sin la extensión del archivo (la parte que sigue al punto, incluido ese punto)? Me gusta esto:
$ <some command>
a
b
e
k
s
ls -a | cut -d "." -f 1
hombre (1) corte
Muy útil, el modificador -d define el delimitador y el campo -f que desea.
EDITAR: Incluir riverfall''s escenario riverfall''s también es pan comido, ya que el corte puede comenzar también desde el final, aunque la lógica es algo diferente. Aquí un ejemplo con un montón de archivos con nombres aleatorios, algunos con dos puntos, algunos con un solo punto y otros sin extensión:
runlevel0@ubuntu:~/test$ ls
test.001.rpx test.003.rpx test.005.rpx test.007.rpx test.009.rpx testxxx
test.002.rpx test.004.rpx test.006.rpx test.008.rpx test_nonum test_xxx.rtv
runlevel0@ubuntu:~/test$ ls | cut -d "." -f -2
test.001
test.002
test.003
test.004
test.005
test.006
test.007
test.008
test.009
test_nonum
testxxx
test_xxx.rtv
El uso del signo menos antes del número de campo hace que elimine TODOS los campos indicados (1,2 en este caso) y si lo pone detrás, comienza a contar desde el final.
Esta misma notación se puede utilizar para el desplazamiento y los caracteres, además de los campos (consulte la página del manual)
ls | while read fname
do
echo ${fname%%.*}
done
Trata eso.