匹配字符串模式 - 通过 awk-gsub 替换为另一个模式

Match string pattern - Replacement via awk-gsub with another pattern

AIM

  1. 我希望能够匹配字符串中的模式,这使用它的初始和最终边界。
  2. 我进一步打算用“ID=”替换模式。

字符串

Class=Grainyhead.domain.factors;Family=CP2-related.factors;id=TFCP2.Ca9750.2.YY2017.HT-SE2;strand=+;seq=TTCTGGTTGGGACCAGGA;score=7.62921;pval=6.53e-05;Averageconservationscore=1.77

希望与 AWK 中的命令匹配的字符串模式

模式

Class=Grainyhead.domain.factors;Family=CP2-related.factors;id=

命令

(/\Class=(.*);id=/)

AWK-GSUB

awk 'BEGIN{FS=OFS="\t"} {gsub(/\Class=(.*);id=/), "ID=", ) 1'}

我不确定 (.*) 使用 !

我通常在 R 中将它用于字符串的 select 部分。

这也可以用于 awk-gsub 过滤吗?

您的分隔符看起来像“;”(不是制表符)。

要使用“以标记开始”进行过滤,请在正则表达式的开头使用“^”(而非\)。

第一次替换后,select 列为 $number

cat file | awk 'BEGIN{FS=OFS=";"} {gsub(/^Class=(.*);id=/, "id="); print , }' > outputfile