例如,输出为systemctl --type=service
是这样的:
Unit Load Active SUB Description
abrt-ccpp.service loaded active exited Install ABRT coredump hook
abrt-oops.service loaded active running ABRT kernel log watcher
我怎样才能把它变成一个看起来更像这样的csv呢?
Unit,Load,Active,SUB,Description
abrt-ccpp.service,loaded,active,exited,"Install ABRT coredump hook"
abrt-oops.service,loaded,active,running,"ABRT kernel log watcher"
我试着用sed来去掉空格,就像这样:
$ sed 's/ \{1,\}/,/g' file
正如预期的那样,这样做的问题是Description列也用逗号分隔。
所以我想到用awk删除描述列,也许只是单独获取描述,然后在以后追加它。
systemctl --type=service | awk '!($5="")'
这只删除了标题“Description”,它的所有内容仍然在输出中。
有没有更好/更简单的方法来获取所有服务的列表以及它是否正在运行的状态?或者甚至只是可以放在csv中的正在运行的服务的列表。
1条答案
按热度按时间hwamh0ep1#
我的建议(仅运行服务的输出):
这将输出如下内容:
你也可以使用正则表达式来捕获描述,但我不知道这对你是否有任何价值。