You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash脚本中将SUSE产品注册信息整理为指定列格式输出

SUSE产品注册状态格式化输出的Bash实现

脚本实现

#!/bin/bash

echo "Installed Products :"
/usr/bin/SUSEConnect --status-text \
  # 保留含注册状态的行(若已完成初步过滤可删除此grep行)
  | grep -E '(Registered|NotRegistered)' \
  # 移除带括号的模块ID内容
  | sed 's/ (.*)//' \
  # 格式化对齐输出:名称占30字符左对齐,状态紧随其后
  | awk '{printf "                      %-30s %s\n", $1, $2}'

各步骤说明

  • 筛选有效行:grep -E '(Registered|NotRegistered)' 只保留包含注册状态的模块行,避免无关信息干扰。如果已经完成初步过滤,可直接删除这一步。
  • 移除模块ID:sed 's/ (.*)//' 匹配并删除行内所有(...)格式的模块ID内容,只保留模块名称和注册状态。
  • 对齐格式化:awk通过printf实现固定缩进和字段对齐,%-30s确保模块名称占30字符宽度且左对齐,后续的注册状态自然对齐在同一列。

适配特殊场景

如果模块名称包含空格(如Desktop Applications Module),可将awk部分替换为:

awk '{status=$NF; $NF=""; printf "                      %-30s %s\n", $0, status}'

此写法会把最后一个字段作为状态,前面所有字段合并为模块名称,保证对齐效果不受名称空格影响。

内容的提问来源于stack exchange,提问作者vijayedm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:43:15