gpt4 book ai didi

linux - 将第一个字段作为前缀添加到文本文件中行中的所有其他字段

转载 作者:太空宇宙 更新时间:2023-11-04 09:13:00 24 4
gpt4 key购买 nike

我希望这可以用 awk 轻松解决,尽管还无法管理它。

我有一个制表符分隔的多行文本文件。在每一行中,第一个字段中有一个标识符,然后是 0 到 8 个附加字段,其中包含有关此标识符的信息。如:

文件Ihave.txt:

LOC107198162    GO:0016021                          
LOC107198170 GO:0004896 GO:0005515 GO:0016020
LOC107198182 GO:0016787
LOC107198203
LOC107198204 GO:0007160
...

我需要将标识符 (LOC*) 添加/复制到包含文本 (GO:*) 的相应行中的每个字段,并在两边的空格之间添加一个“=”符号。即

文件Iwant.txt

LOC107198162    LOC107198162 = GO:0016021                           
LOC107198170 LOC107198170 = GO:0004896 LOC107198170 = GO:0005515 LOC107198170 = GO:0016020
LOC107198182 LOC107198182 = GO:0016787
LOC107198203
LOC107198204 LOC107198204 = GO:0007160
...

我可以通过使用 awk 'BEGIN{OFS="\t"}$2=$1"= "$2' 对第二个字段(第一次出现的信息)执行此操作,但似乎不能找到应用于行中其他文本字段的正确方法。此外,如果那里没有文本,我不想将标识符复制到字段。

最佳答案

你可以试试这个 awk 脚本:

awk '{for(i=2;i<=NF;i++) $i=$1 " = " $i}1' OFS='\t' fileIhave.txt

脚本循环遍历该行的所有字段(第一个字段除外),并将第一个字段添加到所有字段。

关于linux - 将第一个字段作为前缀添加到文本文件中行中的所有其他字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516377/

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