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

답변2

이는 또한 도움이 될 수 있습니다:

cut -f1 -d'_' file

관련 정보