VCFファイルのすべてのIDを変更する正規表現

VCFファイルのすべてのIDを変更する正規表現

VCFファイルのすべてのID(N = 2734)を変更する必要があります。次の例のようになります。

TEUBPD10006_TEUBPD10006 
TEUBPD10007_TEUBPD10007
TEUBPD10008_TEUBPD10008 
.
.
. 

したがって、各IDは最初の部分、つまり:などを含めるように変更する TEUBPD10006必要がありTEUBPD10007ますTEUBPD10008

この場合、Linux正規表現を使用して一度に完了するにはどうすればよいですか?

ベストアンサー1

なぜ正規表現を使用するのが解決策だと思うのかはわかりませんが、これが厳しい要件ではない場合は、次のように簡単に実行できますawk

awk -F'_' '{print $1}' /path/to/file

gawkを使用すると、ファイルを所定の場所に上書きできます。

gawk  -i inplace -F'_' '{print $1}' /path/to/file

または一時ファイルを使用してください。

awk -F'_' '{print $1}' /path/to/file > /path/to/temp_file && mv /path/to/temp_file /path/to/file

もしあなたなら本物正規表現を追加できます。

awk -F'_' '/.*/{print $1}' /path/to/file

しかし、そうすることは意味がありません。


あるいは、sed正規表現と組み合わせることもできます。

sed -e 's/\(.*\)_.*/\1/g' /path/to/file

おすすめ記事