Bash技术实现:将空格分隔字符串转为带短横线前缀的换行格式
解决空格分隔字符串转带短横线列表的问题
直接修改你的sed命令,同时处理首行添加短横线和空格替换换行的需求:
categories="cat1 cat2 cat3 cat4 cat5" mod_categories="$(echo "$categories" | sed 's/^/- /; s/ /\n- /g')" echo "$mod_categories"
命令解释:
s/^/- /:匹配字符串开头(^表示行首),在开头插入-,让首行直接变成- cat1s/ /\n- /g:把所有空格替换成换行符加-,后续分类项自动转为每行带短横线的格式
执行后就能得到期望输出:
- cat1
- cat2
- cat3
- cat4
- cat5
另外还有一种更简洁的写法,无需sed,用printf配合参数展开直接实现:
categories="cat1 cat2 cat3 cat4 cat5" printf -- "- %s\n" $categories
这个方法直接把每个分类项作为参数传给printf,自动按指定格式输出每行内容。
内容的提问来源于stack exchange,提问作者koahv
相关产品推荐
相关产品推荐

