Tengo que escribir un script que encuentre todos los archivos ejecutables en un directorio. Así que probé varias formas de implementarlo y realmente funcionan. Pero me pregunto si hay una manera más agradable de hacerlo.Búsqueda de archivos ejecutables usando ls y grep
Así que este fue mi primer acercamiento:
ls -Fla | grep \*$
Esto funciona bien, porque la bandera -F hace el trabajo por mí y agrega a cada archivo ejecutable de un asterisco, pero digamos que no me gusta el signo de asterisco.
Así que este fue el segundo enfoque:
ls -la | grep -E ^-.{2}x
Esto también funciona bien, quiero un guión como primer carácter, entonces no estoy interesado en los siguientes dos caracteres y el cuarto carácter debe ser una x .
Pero hay un poco de ambigüedad en los requisitos, porque no sé si debo verificar el usuario, grupo u otro permiso ejecutable. Así que esto funcionaría:
ls -la | grep -E ^-.{2}x\|^-.{5}x\|^-.{8}x
Así que estoy probando que el cuarto, séptimo y décimo carácter es una x.
Ahora mi verdadera pregunta, ¿hay una mejor solución usando ls y grep con expresiones regulares que decir:
Quiero grep sólo los archivos, que tiene por lo menos una x en los diez primeros caracteres de una línea producidos por ls -la
Gracias por encontrar algún tipo de solución antes de pedir ayuda. Dado que tenía el requisito de usar ls y grep, parece una pregunta de tarea y veo a las personas que piden respuestas a la tarea sin ningún intento (o al menos sin una descripción de sus intentos). Sé que es casi 4 años después, pero aun así, buen trabajo. –