linux – 在列中打印以空格分隔的列表
发布时间:2020-12-14 01:18:00 所属栏目:Linux 来源:网络整理
导读:我有这个Makefile,它有一个名为“MODULES”的变量,它列出了我在构建中激活的所有模块. 这个列表用空格分隔,所以当我回显$(MODULES)时它看起来像这样: module1 module2 module3 module4 mod5 mod6 mod7 module8 module9 我想要做的是在编译时显示的某些列中
我有这个Makefile,它有一个名为“MODULES”的变量,它列出了我在构建中激活的所有模块.
这个列表用空格分隔,所以当我回显$(MODULES)时它看起来像这样: module1 module2 module3 module4 mod5 mod6 mod7 module8 module9 我想要做的是在编译时显示的某些列中显示此列表. 像这样: Modules activated: module1 module2 module3 module4 mod5 mod6 mod7 module8 module9 理想情况下,列withs将调整为列中最大模块的宽度(参见mod7);并且将根据当前终端的宽度调整列数. 现在,我发现了一些似乎这样做的unix实用程序,比如column,但我无法使用我的set. 你有一些技巧可以让我这样做吗? 编辑: 在下面选择的答案中,我终于在我的Makefile中破解了这个命令: @printf '%sn' $(MODULES) | sort | column 解决方法printf '%-12s%-12s%sn' $modules 这会占用变量的内容,占用占位符在格式字符串中出现的次数,并重复使用,直到消耗掉所有内容为止. 列实用程序将自动为您生成列: column <<< "$(printf '%sn' $module)" 这是第一列.如果你想要行优先: column -x <<< "$(printf '%sn' $module)" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |