как выбрать n первых символов из первого столбца в соответствии с номером второго столбца

Во время моего рабочего процесса я создал этот файл:

AAGGAGGGAGCTGCATGGAACCTGTGGATATATACACACAAGGTTAACCTCTGTCCTGTAAA 8 GGAGTTCAGATGTGTGCTCTTCCGATCTGGAGGTCTCTGCTGGGGCCACCCTGTCCTCTCAG 30 GAGAGAGGAAAGGAAGCGATTGCAGAACTTTCCACAAGGCTTTAGATTCCCCTGTCACAGAG 15 GGAGGAGAAAGAATCAACTTTATAGCATCAGCCCCTTGTTTATTTTAAGTTCAGGGTTTAAG 13 GGGAGAACATTTCCCTCCTTGTCCTCTCCTATCTCACTTACTACATTCCCACTGGTCACTGT 7 GGGACATTTGTGATTACATGGTTGCAGTATTCTTTTTGTTCTTAGTCAGACTGTATAATTGG 4 

Я хотел бы выбрать из каждого текста первого столбца первое число букв, присутствующих в количестве второго столбца. Как первый 8 символов первой строки, первый 30 символов второй строки и т. Д.

Как и первый пример, вывод будет примерно таким:

 AAGGAGGG GGAGTTCAGATGTGTGCTCTTCCGATCTGG 

Любая идея была бы действительно оценена.

С awk :

 awk '{ $0 = substr($1, 0, $2) } 1' file.txt 

С GNU sed :

 sed -r 's/.* ([0-9]+).*/s!^(.{\1}).*!\\1!/' file.txt | \ cat -n | \ sed -r -f - file.txt 

(GNU sed потому что он может читать файлы сценариев из stdin ).

С perl :

 perl -lpe 's/.*?([ACTG]+)\s+(\d+).*/ substr($1, 0, $2)/e' file.txt 

Другой способ: perl :

 perl -lape '$_ = substr($F[0], 0, $F[1])' file.txt 

Без sed:

 while read -rdn;do echo ${d:0:$n};done < file.txt