我正在尝试删除两个特殊字符内的字符串。
cluster10619: negl|c55742_graph_c0_seq1:99:213:3:+ phar|comp52619_c0_seq1 pres|comp29354_c0_seq1 rugi|comp46514_c0_seq1
例如,我想删除 : 和 :+ 之间的所有内容,这样会是
cluster10619: negl|c55742_graph_c0_seq1 phar|comp52619_c0_seq1 pres|comp29354_c0_seq1 rugi|comp46514_c0_seq1
不改变行的其余部分(有时它们很大!)
我试过:sed "s/:.*:+//g"
但它完全删除了行尾
有什么想法吗?
最佳答案
awk -F'|' -v OFS="|" '{sub(/:.*:\+/,"",$2)}7' file
测试你的输入:
kent$ echo "cluster10619: negl|c55742_graph_c0_seq1:99:213:3:+ phar|comp52619_c0_seq1 pres|comp29354_c0_seq1 rugi|comp46514_c0_seq1"|awk -F'|' -v OFS="|" '{sub(/:.*:\+/,"",$2)}7'
cluster10619: negl|c55742_graph_c0_seq1 phar|comp52619_c0_seq1 pres|comp29354_c0_seq1 rugi|comp46514_c0_seq1
关于regex - 删除两个特殊字符之间的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21987759/