
Untitled
By: a guest on
Jun 2nd, 2012 | syntax:
None | size: 2.13 KB | hits: 22 | expires: Never
Split large string into substrings
kent$ echo "abcdefghijklmnopqr"|sed -r 's/(.{5})/1 /g'
abcde fghij klmno pqr
kent$ echo "abcdefghijklmnopqr"|sed -r 's/(.{5})/1n/g'
abcde
fghij
klmno
pqr
kent$ echo "abcdefghijklmnopqr"|awk '{while(length($0)>=5){print substr($0,1,5);gsub(/^./,"")}}'
abcde
bcdef
cdefg
defgh
efghi
fghij
ghijk
hijkl
ijklm
jklmn
klmno
lmnop
mnopq
nopqr
s=ABCDEFGHIJ
for (( i=0; i < ${#s}-4; i++ )); do
printf ">%dn%sn" $((i+1)) ${s:$i:5}
done
>1
ABCDE
>2
BCDEF
>3
CDEFG
>4
DEFGH
>5
EFGHI
>6
FGHIJ
${string:position: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.
for i in seq 0 ${#stringZ}; do
echo ${stringZ:$i:5}
done
$ sed 's/(.....)/1n/g' < filecontaininghugestring
str=ABCDEFGHIJKLM
splitfive(){ echo "${1:$2:5}" ; }
for (( i=0 ; i < ${#str} ; i++ )) ; do splitfive "$str" $i ; done
#!/usr/bin/env bash
splitstr(){
printf '%sn' "${1:$2:$3}"
}
n=$1
offset=$2
declare -a by_fives
while IFS= read -r str ; do
for (( i=0 ; i < ${#str} ; i++ )) ; do
by_fives=("${by_fives[@]}" "$(splitstr "$str" $i $n)")
done
done
echo ${by_fives[$offset]}
$ split-by 5 2 <<<"ABCDEFGHIJKLM"
CDEFG
#include <stdio.h>
int main(void){
FILE* f;
int n=0;
char five[6];
five[5] = ' ';
f = fopen("inputfile", "r");
if(f!=0){
fread(&five, sizeof(char), 5, f);
while(!feof(f)){
printf("%sn", five);
fseek(f, ++n, SEEK_SET);
fread(&five, sizeof(char), 5, f);
}
}
return 0;
}
sed -nr ':a;h;s/(.{5}).*/1/p;g;s/.//;ta;' <<<"ABCDEFGHIJKLM" | # split string
sed '=' | sed '1~2s/^/>/' # add line numbers and insert '>'
$ ls
$ echo "abcdefghijklmnopqr" | split -b5
$ ls
xaa xab xac xad
$ cat xaa
abcde