uptime | cut -d " " -f 4,5,6,7 | cut -d "," -f 1,2
该命令的输出是1 day, 20:07
。我想补充一下“正常运行时间:”前“1天”。 (我要cut
输出Uptime: 1 day, 20:07
)
可以使用 来做到这一点吗cut
?
是的,我可以使用awk
( uptime | cut -d " " -f 4,5,6,7 | cut -d "," -f 1,2 | awk '{print "Uptime:",$1,$2,$3}'
) 来做到这一点。但我需要知道我们是否cut
也可以使用它。 :)
答案1
awk
可能是一个更好、更简单的解决方案。
uptime | awk '{sub(/,/,"",$5); print "Uptime: " $3,$4,$5}'
答案2
答案是否定的。根据手册,该命令的工作是打印选定的文本,不添加文本:
切割(1)
NAME cut - 从文件的每行中删除部分
概要剪切选项... [文件]...
描述 将每个文件中选定的行部分打印到标准输出。
最接近的是添加自定义输出分隔符:
--output-delimiter=STRING 使用 STRING 作为输出分隔符,默认使用输入分隔符
但在这种情况下,这不是您所需要的。
答案3
您无法插入任何内容cut
。
我建议使用sed
插入Uptime:
字符串来代替。
uptime | sed 's/.*up/Uptime:/' | cut -d, -f -2