我有一个巨大的字符串:
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