如何通过shell脚本或命令将横向排列的字符转换为纵向排列?
横向字符转纵向逐行显示的Shell实现方法
需求说明
输入横向字符串:
HELLO
期望输出结果:
H
E
L
L
O
可直接运行的实现方案
你可以选择以下任意一种常用方案实现需求:
- 方案1:使用
fold命令(最简方案)fold命令用于限制行宽,设置行宽为1即可实现每个字符单独换行:
echo "HELLO" | fold -w 1
- 方案2:使用
grep命令
通过正则匹配单个字符,仅输出匹配到的内容即可完成拆分:
echo "HELLO" | grep -o .
- 方案3:使用
sed命令
通过字符串替换给每个字符后追加换行符:
echo "HELLO" | sed 's/./&\n/g'
- 方案4:使用
awk命令
设置字段分隔符为空,遍历输出每个字段即可:
echo "HELLO" | awk -F '' '{for(i=1;i<=NF;i++) print $i}'
tr命令失败原因说明
标准tr不支持空的搜索字符集,直接使用tr '' '\n'这类写法会触发语法报错,因此不推荐用tr实现该需求。
内容的提问来源于stack exchange,提问作者Nagendra Kumar T
相关产品推荐
相关产品推荐

