Linux sed不能取代逗号

时间:2015-02-05 22:24:41

标签: linux bash sed

uptime=$(uptime | sed 's/^.*up//;s/:/ hours and /; s/, load/ minutes, load/g')

输出结果为:

2 days, 3 hours and 41, load average: 0.04, 0.07, 0.10

我希望输出如下:

2 days, 3 hours and 41 minutes, load average: 0.04, 0.07, 0.10

如何使用sed

执行此操作

2 个答案:

答案 0 :(得分:1)

您可能需要使用2个sed命令:

uptime=$(uptime | sed 's/^.*up//;s/:/ hours and /' |sed 's/,\s\+load/ minutes, load/g' )

实际上它只适用于一个,它可能有多个空间:

uptime | sed 's/^.*up//;s/:/ hours and /; s/,\s\+load/ minutes, load/g'

答案 1 :(得分:1)

您可以使用分组直接捕捉小时/分钟:

echo $(uptime | sed 's/^.*up//;s/\([0-9][0-9]*\):\([0-9][0-9]\)*/\1 hours and \2 minutes/')