我有以下格式的文本文件:
variableStep chrom=chr1 span=10
10161 1
10171 1
10181 2
10191 2
10201 2
10211 2
10221 2
10231 2
10241 2
10251 1
variableStep chrom=chr10 span=10
70711 1
70721 2
70731 2
70741 2
70751 2
70761 2
70771 2
70781 2
70791 1
71161 1
71171 1
71181 1
variableStep chrom=chr11 span=10
104731 1
104741 1
104751 1
104761 1
104771 1
104781 1
104791 1
104801 1
128711 1
128721 1
128731 1
我需要一种方法将其分解为多个文件,例如“chr1.txt”、“chr10.txt”和“chr11.txt”。我该怎么做呢?
我关于以下方式:
cat file.txt | \
while IFS=$'\t' read -r -a rowArray; do
echo -e "${rowArray[0]}\t${rowArray[1]}\t${rowArray[2]}"
done > $file.mod.txt
逐行读取,然后逐行保存。但是,我需要一些更精细的跨越行的东西。“chr1.txt”将包括从第 10161 1 行到第 10251 1 行的所有内容,“chr10.txt”将包括从第 70711 1 行到第 71181 1 行的所有内容,等等。这也是具体的,我必须阅读实际chr# 也从每一行,并将其保存为文件名。
非常感谢您的帮助。