¿Cómo imprimo la salida awk en la misma línea?

Estoy usando esto para imprimir la resolución de mi monitor:

$ xrandr | awk '/\*/{print $1}'

Cuando conecto un segundo monitor obtengo salida en dos líneas,

$ xrandr | awk '/\*/{print $1}'

1920x1200
1600x1050

Me gustaría tener la salida en la misma línea. Entonces se verá así:

Monitor sizes: 1920x1200 1600x1050 

¿Cómo haría esto de la manera más simple?

0
tluafed 18 oct. 2017 a las 17:10

3 respuestas

La mejor respuesta

He encontrado esta solución que es similar a lo que anubhava publicó.

    $ xrandr | awk '/\*/{printf $1" "}'
    1920x1200 1600x1050
0
tluafed 18 oct. 2017 a las 15:50

Puede agregar xargs a su comando, p.

$ xrandr | awk '/\*/{print $1}' | xargs

Aquí hay un comando alternativo que utiliza grep y xargs:

$ grep -o '[0-9]\+x[0-9]\+' <(xrandr) | xargs
1440x878 2880x1800 1440x900 2560x1600 2048x1280 1024x768 800x600 640x480 1680x1050 1280x800 1440x878

O usando echo:

$ echo Monitor sizes: $(grep -o '[0-9]\+x[0-9]\+' <(xrandr))
Monitor sizes: 1440x878 2880x1800
0
kenorb 18 oct. 2017 a las 14:15

Es bueno saber paste:

xrandr | awk '/\*/{print $1}' | paste - -

También puedes usar echo:

echo $(xrandr | awk '/\*/ {print $1}' )
0
Walter A 18 oct. 2017 a las 22:07