出力をawkまたはsedに置き換える

出力をawkまたはsedに置き換える

だから私はbashの特定の出力をawkに変更しようとしました。しかし、私はそれを動作させることができないようです。 "uptime"の$ 6出力を "user"の代わりに "user"に置き換えようとしています。 awkまたはsedを使用してこれをどのように実行できますか?

これは現在のスクリプトの「一部」です。

#!/bin/bash

since="`uptime --since`"
start="`date --date "$since" '+%s'`"
now="`date '+%s'`"
sec=$((now-start))

days=$((sec/(60*60*24)))
sec=$((sec-days*(60*60*24)))

hr=$((sec/(60*60)))
sec=$((sec-hr*(60*60)))

min=$((sec/60))
sec=$((sec-min*60))

rest="$(uptime | perl -npe'{s/(.*,\s+)(\d+\s+use)/$2/}')"

printf `uptime | awk '{print $1}'`" up %2d:%02d,  %s\n" $hr $min "$rest"

出力は次のとおりです21:08:13 up 0:10, 3 users load average: 0.30, 0.30, 0.25

ベストアンサー1

これは非常に些細なことに多くの努力をするように思われるかもしれません。以下は、sed出力で "user"を "user"に置き換える簡単なコマンドです。uptime

$ uptime | sed 's/users/user/'
 12:28:39 up 17:16,  7 user,  load average: 1.67, 1.41, 1.31

おすすめ記事