gpt4 book ai didi

Linux/PERL : split a single line into multiple lines

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:18 27 4
gpt4 key购买 nike

我的输入文件内容 - 测试:

tang 123 gene gene 3000 1000 4000 
  • 5h 列是碱基对中基因的大小。
  • 第6列是基因定位的起点;
  • 第 7 列是基因位置的终点。

我想将此行分成多行,每行 600 个碱基对,直到终点/终点之前。

我想要这样的结果:

tang 123 gene gene 600 1000 1600 
tang 123 gene gene 600 1600 2200
tang 123 gene gene 600 2200 2800
tang 123 gene gene 600 2800 3400
tang 123 gene gene 600 3400 4000

我应该怎么做才能得到这些结果?我可以只写命令行还是需要写脚本?

最佳答案

快速一行:

echo tang 123 gene gene 3000 1000 4000 |\
perl -ale '$F[4] = 600; print "@F[0..5] ",$F[5]+=$F[4] while $F[5] < $F[6]'

对于每一行,将其拆分为字段 0 到 6,并将字段 4 替换为 600。

然后打印字段 0..5,将字段 5 增加字段 4,并打印它来代替字段 6,而字段 5 小于字段 6。

关于Linux/PERL : split a single line into multiple lines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25850439/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com