Pasar argumentos a bash con el comando awk para filtrar

Pasar argumentos a bash con el comando awk para filtrar

Me gustaría pedir ayuda sobre cómo puedo mejorar el script básico a continuación.

Entonces, pude pasar los argumentos a bash, pero ¿es posible que mi comando awk lo haga más flexible?

Encontré un error en df -hel comando donde muestra 2 líneas para 1 sistema de archivos (se supone que es solo una línea)

y luego, el script no muestra los parámetros correctos ya que los números de argumento ( $6y $5) han cambiado.

Muestra:

df -h

Filesystem                   Size            Used  Avail  Use% Mounted on
/dev/test/test2/test3        1.1G            100M  1G     1%   /test
/dev/test/test2/test3/test4
                          1.1G            100M  1G     1%   /tst2


$ cat myscript.sh
#!bin/bash

df -h "$@" | awk '{print $6,"=",$5}' | sed -n '1!p'

$ ./myscript.sh /test /tst2

Mi salida será

/test=1%

=/tst2

pero debería ser

/test=1%

/tst2=1%

Respuesta1

Simplemente use esto en su lugar y no tendrá que preocuparse por el posprocesamiento de la dfsalida.

df -P

Esto garantizará que la salida de 1 sistema de archivos no abarque varias líneas.

Entonces tu guión final será

df -h -P "$@" | awk '{ print $6,"=",$5}' | sed -n '1!p'

información relacionada