gpt4 book ai didi

哎呀?将增量数字附加到包含符号的每一行

转载 作者:行者123 更新时间:2023-12-02 05:19:31 24 4
gpt4 key购买 nike

我有一个序列文件。

>seqA
lakjdsflakjsdlkjals;dkjfal;kdjsfl;aksdjf;lakjsdfl;kjalsdkjf
alsdkjfalskdjf;alsdfj;alkdjsf;lakjsdf;lkajsd
>seqB
fjal;kdjsfla;kdjsflkajdslkjfaghal;sdkjg
>seqC
a;lksdjl;akjsdg;lkjsdfl;kajdsl;kgj;alkdjsg;lkajsdgl
lsdkfja;lksdjf;lakdjsf;lkajsdfl;kjal;sdkfjal;skdjak
sdkjfal;ksdjflk;ahdglkahsdl;kghalk

我想在每个“>”后添加一个递增的数字

例如:

输出文件:

>1seqA
lakjdsflakjsdlkjals;dkjfal;kdjsfl;aksdjf;lakjsdfl;kjalsdkjf
alsdkjfalskdjf;alsdfj;alkdjsf;lakjsdf;lkajsd
>2seqB
fjal;kdjsfla;kdjsflkajdslkjfaghal;sdkjg
>3seqC
a;lksdjl;akjsdg;lkjsdfl;kajdsl;kgj;alkdjsg;lkajsdgl
lsdkfja;lksdjf;lakdjsf;lkajsdfl;kjal;sdkfjal;skdjak
sdkjfal;ksdjflk;ahdglkahsdl;kghalk

到目前为止,在搜索互联网后我已经尝试过:

awk -F "i=1" '{if (/>/){print $0i++} else print}'

它没有做任何事情。我做错了什么?

谢谢!

最佳答案

尝试:

awk '/>/{$0 = ">" ++i substr($0, 2)} 1'

例如:

$ awk '/>/{$0 = ">" ++i substr($0, 2)} 1' file
>1seqA
lakjdsflakjsdlkjals;dkjfal;kdjsfl;aksdjf;lakjsdfl;kjalsdkjf
alsdkjfalskdjf;alsdfj;alkdjsf;lakjsdf;lkajsd
>2seqB
fjal;kdjsfla;kdjsflkajdslkjfaghal;sdkjg
>3seqC
a;lksdjl;akjsdg;lkjsdfl;kajdsl;kgj;alkdjsg;lkajsdgl
lsdkfja;lksdjf;lakdjsf;lkajsdfl;kjal;sdkfjal;skdjak
sdkjfal;ksdjflk;ahdglkahsdl;kghalk

它是如何工作的

  • />/{$0 = ">" ++i substr($0, 2)}

    这将选择包含 > 的行。对于这些行,我们替换行 $0>接下来是 ++i (这是变量 i 递增后的值),后跟从第二个字符开始的当前行。

  • 1

    这是 awk 的 print-the-line 简写。

关于哎呀?将增量数字附加到包含符号的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49200108/

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