ファイルがあります。
had my.file
Ha1_00044012__C 1 51035805 10.35639322
Ha1_00045184__C 1 86676829 10.07929888
Ha1_00045056__C 1 150178524 19.44076068
Ha10_00000491__C 10 73473488 10.6038893
Ha10_00000577__C 10 78976728 12.45451149
Ha10_00002949__C 10 113658711 14.94370396
Ha10_00001805__C 10 220068670 10.87452401
最初の列から最後の3文字 "__C"を削除したいと思います。頑張った
awk '{gsub(/[__c ]/,"",$1)}3'
ただし、最初の列の「_」はすべて削除されます。私が望む出力は次のようになります。
head desired
Ha1_00044012 1 51035805 10.35639322
Ha1_00045184 1 86676829 10.07929888
Ha1_00045056 1 150178524 19.44076068
Ha10_00000491 10 73473488 10.6038893
Ha10_00000577 10 78976728 12.45451149
Ha10_00002949 10 113658711 14.94370396
Ha10_00001805 10 220068670 10.87452401
ベストアンサー1
周囲の角括弧は[__c ]
次のとおりです。置く一つではなく注文する性格。これを使用すると、次gsub
のすべての_
、c
(小文字、コメント)、および空白文字と一致して置き換えられます。$1
__C
以下を使用して実行できるシーケンスの単一インスタンス(大文字)を置き換えたいと思います。sub(/__C/,"",$1)
大文字と小文字を区別しない場合は、次のようにします。/__[Cc]/