Mientras jugaba con awk
vine a ejecutar:
ls -la >> a.txt ; awk {'print $5 $1'} a.txt ;
Esto está dando salida como:
53277-rw-------
52347-rw-------
¿Cómo puedo obtener un espacio entre estos dos amigos de salida?
command-line
text-processing
awk
rɑːdʒɑ
fuente
fuente
ls
. Esto te morderá en la espalda tarde o temprano.print $5 $1
awk {'print $5 $1'} a.txt
). Están preguntando cómo poner un espacio entre el campo # 1 y el campo # 5.Respuestas:
Solo cambia la línea a
Esto debería imprimir la salida con espacios.
Espero que esto ayude.
Editar:
Según lo sugerido por McNisse , puede usar printf, que le proporcionaría un buen formato de salida
fuente
printf
función proporciona un mejor control, especialmente si desea formatear números.printf("%s\t%s\n", $5, $1)
5s
significa enawk {'printf ("%5s\t%s\n", $5, $1)'}
Otra técnica específica de awk, usa el "separador de campo de salida"
La coma es crucial aquí.
fuente
$1
ir a nueva líneaUna forma sencilla de obtener pestañas es:
fuente
Sé que este es un hilo viejo, pero estoy aprendiendo y encontré útiles estas publicaciones. Mi mejor solución fue usar gawk para insertar espacios entre las variables para usted.
fuente
gawk
,mawk
o cualquier otroawk
, todos insertan espacios si usa la coma, que es lo que dice esta respuesta .ls -la | awk '{print $1, $9}'
. Como dijo muru,gawk
no es necesario.Para colocar el espacio entre los argumentos, simplemente agregue
" "
, por ejemploawk {'print $5" "$1'}
.Sin embargo, no se recomienda analizar la salida del
ls
comando , ya que no es confiable y la salida es para humanos, no para scripts. Por lo tanto, use comandos alternativos comofind
ostat
.Aquí hay un ejemplo usando GNU
stat
:que imprimirá una salida amigable para la máquina (en forma concisa), para que pueda obtener exactamente lo que necesita. Luego, use
-c
para usar un formato específico, o useawk
,cut
oread
para obtener las columnas correctas.Consulte
stat --help
para más opciones. Por ejemplo, para imprimir el día de la modificación, consulte este ejemplo .fuente
for i in ls; do $i
).