

お世話になっております。

[code]

    uname -n ; cat /proc/meminfo | head -1 | awk '{print$2}'
    
    server1
    1112233
    
[/code]

という結果を得ました。

この結果を、

[code]

    sever1 112233
    
[/code]

としたいのですが、何かいい方法はないでしょうか。


CC BY-SA 3.0
2015-11-11T00:33:31.280
18643
2021-05-23T23:30:32.203
2015-11-11T01:10:21.717
9807
question
bash awk
Bash 複数コマンドの結果を1行で表示したい


[linux - How to join multiple lines of file names into one with custom
delimiter? - Stack Overflow](https://stackoverflow.com/questions/2764051/how-
to-join-multiple-lines-of-file-names-into-one-with-custom-delimiter)

[code]

    (uname -n ; cat /proc/meminfo | head -1 | awk '{print$2}') | tr '\n' ' '
    
[/code]

でどうでしょう


CC BY-SA 3.0
2015-11-11T00:38:30.240
18644
2015-11-11T00:43:29.593
2017-05-23T12:38:56.467
-1
9008
18643
answer


既に解決済みですが、別回答ということで。

[code]

    $ echo -n "$(uname -n) "; cat /proc/meminfo | awk 'NR==1{print $2}'
    
    $ set -- $(uname -n; cat /proc/meminfo | awk 'NR==1{print $2}'); echo "$1 $2"
    
    $ printf "%s %s\n" $(uname -n; cat /proc/meminfo | awk 'NR==1{print $2}')
    
    $ cat /proc/meminfo | awk -v uname="$(uname -n)" 'NR==1{print uname " " $2}'
    
[/code]


CC BY-SA 3.0
2015-11-11T01:06:26.467
18646
2015-11-11T01:06:26.467
18643
answer


私でしたらこうやります。

[code]

    echo $(uname -n ; cat /proc/meminfo | head -1 | awk '{print$2}')
    
[/code]


CC BY-SA 3.0
2015-11-12T05:05:33.883
18716
2015-11-12T05:05:33.883
5008
18643
answer


別解です。  
複数の行(行数固定)を1行にまとめる場合`paste`を使います。

[code]

    (uname -n ; cat /proc/meminfo | head -1) | paste - -
    
[/code]

n行まとめたいときは`paste - -`の`-`をn個書きます。


CC BY-SA 4.0
2019-12-31T05:16:04.327
61910
2019-12-31T05:16:04.327
35558
18643
answer


  1. 全体を `( )` で括り
  2. `xargs`

でしょうか。

[code]

    $ (uname -n ; cat /proc/meminfo | head -1 | awk '{print$2}') | xargs
    c809051830b8 8152984
    
[/code]


CC BY-SA 4.0
2021-05-23T23:30:32.203
76034
2021-05-23T23:30:32.203
34583
18643
answer