2017-10-18 388 views
0

如何在同一行上打印awk输出。在同一行上打印awk输出

我用这来打印我的显示器的分辨率:

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

当我连接第二台显示器,我得到两行输出,

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

1920x1200 
1600x1050 

我想有输出在同一行上。所以它看起来是这样的:

Monitor sizes: 1920x1200 1600x1050 

我该怎么做这个最简单的方法?

+1

'xrandr | awk'/ \ */{printf“%s”,$ 1}';回声' – anubhava

+0

哦,我的,我非常喜欢这个。 – tluafed

回答

0

您可以将xargs附加到您的命令中,例如,

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

下面是使用grepxargs替代命令:

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

或者使用echo

$ echo Monitor sizes: $(grep -o '[0-9]\+x[0-9]\+' <(xrandr)) 
Monitor sizes: 1440x878 2880x1800 
+0

不错!这些解决方案似乎运作良好。 – tluafed

0

我发现这个解决方案,类似于anubhava公布。

$ xrandr | awk '/\*/{printf $1" "}' 
    1920x1200 1600x1050 
+0

@anubhava在两种尺寸之后为换行添加了'echo'。另一种方法是添加'awk'语句'END {print}'。 –

0

我很高兴知道paste

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

您也可以iuse将会echo

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