如何在 cut 命令输出的字段之间添加文本?

如何在 cut 命令输出的字段之间添加文本?
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

相关内容