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
答え2
これも役に立ちます。
cut -f1 -d'_' file