Possible Duplicate:
How can I use inverse or negative wildcards when pattern matching in a unix/linux shell?Lista de todos los archivos que no coinciden con el selector (usando ls)
que he leído la página man
para ls
, y no puedo encontrar la opción de listar todos los que hacen no coincidir con el selector de archivos . ¿Sabes cómo realizar esta operación?
Por ejemplo: digamos mi directorio es la siguiente:
> ls
a.txt b.mkv c.txt d.mp3 e.flv
Ahora me gustaría hacer algo que hace lo siguiente
> ls -[SOME_OPTION] *.txt
b.mkv d.mp3 e.flv
¿Hay tal opción?
Si no es así, ¿hay alguna manera de conectar la salida de ls
a otra función (posiblemente sed
) que muestra solo las que me gustaría?
No sé exactamente cómo hacer esto, pero estoy imaginando que sería algo así como:
> ls | sed [SOMETHING]
que realmente debería aprender a utilizar sed
, awk
y grep
, pero sigo atascarse en comprender cómo escribir las expresiones regulares. Entiendo claramente el concepto de expresiones regulares, pero me confunden las expresiones regulares que usan una sintaxis diferente.
¡Cualquier ayuda sería muy apreciada!
EDIT:
me olvidó mencionar que estoy ejecutando Mac OS X, por lo que las funciones pueden ser ligeramente diferentes de los discutidos en otras respuestas a la Concha de Unix/Linux (por lo tanto algunos de mi confusión con sed
, awk
y grep
).
Esto funciona muy bien con muchos selectores diferentes como el parámetro 'path' ¡Gracias! Una cosa que encontré fue que podía hacer 'find. -maxdepth 1! -path" * txt "' también Ahora, ¿qué tendría que usar si tuviera un Regex para filtrar la lista? –
if quieres usar Regex, usa grep. ej. tienes 3 archivos como "abc", usa ls | grep -v "[a | b]", luego mostrará c. y luego si tienes 3 archivos aa aaa, use "ls | grep -v "a +", entonces solo mostrará "a". –
./ El argumento es opcional ya que el comando find ya comienza a buscar desde el árbol de directorios actual – kante