如何用两列替换文件中的字符串?

丹尼尔·塞巴斯

我的文件内容如下:(两列用“制表符”分隔)

Others  ___
Archaea ___
Archaea_Euryarchaeota   ___
Archaea_Methanomicrobia_o_RCII  ___
Bacteria1       ___
Bacteria2       ___
Bacteria;p__Acidobacteria;c__Holophagae;o__Holophagales;f__Holophagaceae;g__    g__
Bacteria;p__Acidobacteria;c__Solibacteres;o__Solibacterales;__;__       ___
Bacteria;p__Acidobacteria;c__Solibacteres;o__Solibacterales;f__;g__     g__
Bacteria;p__Acidobacteria;c__Sva0725;o__Sva0725;f__;g__ g__
Bacteria;p__Acidobacteria;c__[Chloracidobacteria];o__;f__;g__   g__
Bacteria;p__Acidobacteria;c__iii1-8;o__SJA-36;f__;g__   g__
Bacteria;p__Actinobacteria;c__Acidimicrobiia;o__Acidimicrobiales;f__;g__        g__
Bacteria;p__Actinobacteria;c__Acidimicrobiia;o__Acidimicrobiales;f__EB1017;g__  g__
Bacteria;p__Actinobacteria;c__Acidimicrobiia;o__Acidimicrobiales;f__Microthrixaceae;g__ g__
Bacteria;p__Actinobacteria;c__Actinobacteria;__;__;__   ___

我想做的是:

当我g__在第二列中找到时,则需要用第一列中最后找到的单词(在p__或c__或o__或f__或g__之后)替换它。例如在线

Bacteria;p__Actinobacteria;c__Acidimicrobiia;o__Acidimicrobiales;f__Microthrixaceae;g__ g__

g__第二栏中的应替换为Microthrixaceae

同样,对于“何时___发现”的情况,请替换为第一列中最后找到的单词(在p__或c__或o__或f__或g__之后)。非常感谢您的建议。谢谢!

输出应如下所示:

Others  ___
Archaea ___
Archaea_Euryarchaeota   ___
Archaea_Methanomicrobia_o_RCII  ___
Bacteria1       ___
Bacteria2       ___
Bacteria;p__Acidobacteria;c__Holophagae;o__Holophagales;f__Holophagaceae;g__ Holophagaceae    
Bacteria;p__Acidobacteria;c__Solibacteres;o__Solibacterales;__;__       Solibacterales
Bacteria;p__Acidobacteria;c__Solibacteres;o__Solibacterales;f__;g__     Solibacterales
Bacteria;p__Acidobacteria;c__Sva0725;o__Sva0725;f__;g__ Sva0725
Bacteria;p__Acidobacteria;c__[Chloracidobacteria];o__;f__;g__   Chloracidobacteria
Bacteria;p__Acidobacteria;c__iii1-8;o__SJA-36;f__;g__   SJA-36
Bacteria;p__Actinobacteria;c__Acidimicrobiia;o__Acidimicrobiales;f__;g__        Acidimicrobiales
Bacteria;p__Actinobacteria;c__Acidimicrobiia;o__Acidimicrobiales;f__EB1017;g__  EB1017
Bacteria;p__Actinobacteria;c__Acidimicrobiia;o__Acidimicrobiales;f__Microthrixaceae;g__ Microthrixaceae
Bacteria;p__Actinobacteria;c__Actinobacteria;__;__;__   Actinobacteria
韦伯

awkperl什至sed绝对是比纯净更好的选择bash这是一个perl解决方案:

perl -pe 's/(.*?)([a-z]__\[?)([A-Za-z0-9-]+)(\])?(;[a-z]?__)*(\t)([g_]__)/$1$2$3$4$5\t$3/' yourfilename

有关为什么这样做的一些解释,请将鼠标悬停在突出显示的正则表达式字符串上:https : //regex101.com/r/tLpMCG/1

(请注意,该正则表达式与该答案中的正则表达式略有不同,因为在这里我使用perl,但是在这里我不得不使用php,并且在粘贴选项卡时遇到了困难。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用其他文件替换文件中的字符串。

来自分类Dev

如何用双引号替换文件中的字符串

来自分类Dev

如何使用gulp替换文件中的字符串?

来自分类Dev

如何替换文件中的日期字符串?

来自分类Dev

如何替换文件中的字符串?

来自分类Dev

如何替换文件中的字符串?

来自分类Dev

如何替换文件中的可变字符串?

来自分类Dev

如何替换文件中的字符串

来自分类Dev

替换文件中的字符串

来自分类Dev

如何用另一个文件的输入替换文本字符串

来自分类Dev

在R中,如何用其他项目替换文本字符串中的项目?

来自分类Dev

如何用sed替换SQL文件中的字符串

来自分类Dev

如何用文件的一列中的一列替换复杂的字符串?

来自分类Dev

如何用字符串替换文本框中的选定文本?

来自分类Dev

如何用RegEx替换文本中字符串的第x次出现?

来自分类Dev

如何搜索字符串并替换文本文件中的字符串?

来自分类Dev

从参考列表中替换文件中的字符串

来自分类Dev

从参考列表中替换文件中的字符串

来自分类Dev

如何用不同的字符串替换一组文件中的字符串?

来自分类Dev

如何用空字符串替换字符串(在文件中)

来自分类Dev

如何使用批处理文件以递归方式替换文件中的字符串?

来自分类Dev

替换文件中字符串的命令

来自分类Dev

使用groovy替换文件中的字符串

来自分类Dev

替换文件中的某些字符串

来自分类Dev

替换文件中的字符串和RegEx

来自分类Dev

递归替换文件中很长的字符串

来自分类Dev

sed替换文件中特定字符串的结尾

来自分类Dev

使用groovy替换文件中的字符串

来自分类Dev

用perl替换文件中的字符串

Related 相关文章

热门标签

归档