如何提取符号(<<) and its corresponding alphabets from a string with sed, awk or grep

问题描述 投票:0回答:2

DNA covariance model

  1. 我可以按照 stackflow 中的建议删除最后一个字符:

    sed 's/.$//'

  2. 使用以下命令提取最后一个字符:

    rev sym.txt | cut -c 1-3 | rev

    
    

  3. 仅提取

    grep -Eo "<.{3}" sym.txt< with grep :

    
    

但我无法如下提取

GAG <<< GAGC <<<<

GAGCA <<<<
有人可以帮忙使用 sed、awk 或 grep - 提前谢谢你

string awk sed substring extract
2个回答
1
投票
如果我理解正确,你想打印全部

< characters plus characters above the < characters

我试过这个

$ awk '{ if (match($0,/<+/)) { print substr(prevline,RSTART,RLENGTH); print substr($0,RSTART,RLENGTH); next}} { prevline=$0 }' file GAG <<< GAGC <<<<
    

0
投票
这可能对你有用(GNU sed):

sed -E 'N;:a;s/^.(.*\n)[^<]|.(\n.*)[^<]$/\1\2/;ta;' file
通过设置选项 

-E

 使用扩展正则表达式。

添加以下行。

引入循环。

使用替换蚕食两条线的前面和后面,直到只剩下掩码和掩码的结果。

© www.soinside.com 2019 - 2024. All rights reserved.