我有一个有几千行的文本文件,我想通过做一些修改来更新这些行
原始行:
b1522 ftp://ftp.genecard.giv.nlm.org/genome/all/ABC_001596115.1_ASM159611v1#
dd1120 ftp://ftp.genecard.giv.nlm.org/genome/all/ABC_231146189.1_ASM159611v1#
期望输出:
b1522 ftp://ftp.genecard.giv.nlm.org/genome/all/ABC/001/596/115/ABC_001596115.1_ASM159611v1#
dd1120 ftp://ftp.genecard.giv.nlm.org/genomes/all/ABC/231/146/189/ABC_231146189.1_ASM159611v1#
我想从“ABC”复制到“.”之前的最后一个数字,在“all”之后用两个正斜杠粘贴,删除下划线,每三个字符后用一个正斜杠。我不知道该怎么和艾克相处。我的awk知识很基础
我不知道如何在awk里做,但是你可以用sed轻松地做
它的作用是
匹配包含ABC\u的每一行
(ABC_uu)将ABC_u捕获到一个名为\1的变量中
(…)(…)(…)(…)。将接下来的9个字符捕获到名为\2的变量中
(…)捕获三个字符并将它们放入变量中。这三个实例将分别创建名为\3、\4和\5的变量
s%pattern%replacement%与模式匹配,并用替换项替换所有模式
在这种情况下,我们匹配ABC和9个字符,将它们存储在变量中,然后将整个批次替换为:
其中/ABC/\3/\4/\5/
是你正在(添加)插入的内容
和\1\2
把原文放回去,在插入的右边
另一个类似的
sed
相关问题 更多 >
编程相关推荐