我有两个文本文件:string.txt和lengths.txt
String.txt:
abcdefghijklmnopqrstuvwxyz
lengths.txt
5
4
10
7
我想获取文件
>Entry_1
abcde
>Entry_2
fghi
>Entry_3
jklmnopqrs
>Entry_4
tuvwxyz
我正在处理大约28,000个条目,它们在200至56,000个字符之间变化。
目前,我正在使用:
start=1
end=0
i=0
while read read_l
do
let i=i+1
let end=end+read_l
echo -e ">Entry_$i" >>outfile.txt
echo "$(cut -c$start-$end String.txt)" >>outfile.txt
let start=start+read_l
echo $i
done <lengths.txt
但这效率很低。还有更好的主意吗?
老实说,速度并不快。它仍然需要相当长的时间。我对linux /编程非常陌生,因此,如果您认为有一种不仅使用shell的更快捷的方法,那么我也乐于接受。
—
user3891532
尝试
—
jimmij
{ while read l<&3; do head -c"$l"; echo; done 3<lengths.txt; } <String.txt
。
@jimmij,该如何回答
—
iruvar
str="$(cat string.txt)"; i=0; while read j; do echo "${file:$i:$j}"; i=$((i+j)); done <length.txt
..seems不够快只能通过外壳为完成..