使用awk替换特定的多行模式

时间:2014-04-14 07:29:30

标签: regex awk

下面是我的标签分隔文件:

$OC90$  BMPR2
TRA@    CANX
TRA@    HLA-B
TRG@    TRD@
AP2M1   $ZBTB8$
$ZBTB8$ $ZBTB8$

其中第一列和第二列表示Gene符号。有些符号用$括起来,有些用@符号括起来。如何使用awk从文件中删除这两个符号(@和$)。

4 个答案:

答案 0 :(得分:1)

awk应该:

awk '{gsub(/\$|@/,"")}1' file
OC90    BMPR2
TRA     CANX
TRA     HLA-B
TRG     TRD
AP2M1   ZBTB8
ZBTB8   ZBTB8

答案 1 :(得分:1)

 awk 'gsub(/[@$]/,"") || 7' file

答案 2 :(得分:1)

tr在这里会更简单:tr -d '@$' < file

答案 3 :(得分:0)

awk '{gsub(/\$/,"",$0); gsub(/@/,"",$0); print;}' inputfile