Cómo hacer un comando LS en la salida desde un campo AWK
Pregunta
Esto toma un directorio como parámetro:
#!/bin/bash
ls -l $1 |awk '$3!=$4{print $9}'
Ahora lo que necesito es poder hacer otro ls -l
En los archivos que se encuentran desde la declaración AWK.
Sí, suena tonto, y sé como otras 3 formas de hacer esto, pero no con AWK.
Solución
#!/bin/bash ls -l $1 | awk '$3!=$4{ system( "ls -l '$1'/" $9}'
Otros consejos
Use el comando del sistema AWK:
ls -l $1 |awk '$3!=$4{system("ls -l " $9)}'
El comando para usar es xargs
.
man xargs
debería dar algunas pistas.
Si se le permite ajustar el primero ls -l
Podrías intentar hacer:
ls -ld "$1"/* |awk '$3!=$4{print $9}' | xargs ls -l
En este caso ls
prefijo el directorio. Pero no sé si este es un comportamiento portátil.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow