微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将大字符串拆分为子字符串

我有一个巨大的字符串:

ABCDEFGHIJKLM…

我想以这种方式将它分成长度为5的子串:

>1
ABCDE
>2
BCDEF
>3
CDEFG

[…]

UPDATE

解:
好的,多亏你们,我能找到快速做到这一点的方法!这是我的解决方案,结合了这里的一些想法:

str=”ABCDEFGHIJKLMnop
splitfive(){ echo $1 | cut -c $2- |sed -r ‘s/(.{5})/\1\n/g’ ; }
for (( i=0 ; i <= 5 ; i++ )) ; do splitfive “$str” $i ; done | grep -v “^$”

${string:position:length}

从$position的$string中提取子字符串的$length字符.

stringZ=abcABC123ABCabc
#       0123456789.....
#       0-based indexing.

echo ${stringZ:0}                            # abcABC123ABCabc
echo ${stringZ:1}                            # bcABC123ABCabc
echo ${stringZ:7}                            # 23ABCabc

echo ${stringZ:0:5}                          # abcAB
                                             # Five characters of substring.

然后使用循环遍历并向该位置添加1以提取长度为5的每个子字符串.

for i in seq 0 ${#stringZ}; do
    echo ${stringZ:$i:5}
done

全部来自Bash string manipulation

原文地址:https://www.jb51.cc/bash/385195.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐