Ejecuto el comando free -mo en Linux y mi salida es:
total used free shared buffers cached Mem: 64401 33265 31135 0 667 15455 Swap: 4099 0 4099Pero necesito la salida:
total used free Mem: 64401 33265 31135 Swap: 4099 0 4099 Tenía la intención de usar free -mo | awk '{print $1,$2,$3,$4}' pero mi resultado es:
total used free shared Mem: 64401 33268 31132 Swap: 4099 0 4099Aprecio tu ayuda .
Puedes usar:
free -mo | awk '{print (NR==1?"Type":""), $1, $2, $3, (NR==1?"":$4)}' | column -tAdded a column `para hacer que la primera fila consista en 4 columnascolumn -t es para formato tabularProducción:
Type total used free Mem: 2003 163 1840 Swap: 1430 0 1430Preservar los números alineados a la derecha:
free -mo | awk 'BEGIN{len=0} NR==1{len=length(gensub(/free.*$/, "free",1))} {print substr($0,1,len)}' total used free Mem: 7913 7377 535 Swap: 8115 569 7546otro awk sin encabezado de relleno
$ awk -v OFS='\t' 'NR==1{print "",$1,$2,$3;next} {print $1,$2,$3,$4}' file total used free Mem: 64401 33265 31135 Swap: 4099 0 4099