:
vcf 파일의 각 줄에서 기호 뒤의 숫자를 제거하는 방법 . 예:
0|0:0.81 0|1:0.81 0|0:0.76 0|0:0.83
0|1:0.99 0|0:0.03 0|0:0.83 0|0:0.2
출력은 다음과 같아야 합니다.
0|0 0|1 0|0 0|0
0|1 0|0 0|0 0|0
다음을 시도했지만 첫 번째 이후의 모든 내용이 삭제됩니다.:
sed 's/[:].*$//' file.vcf
답변1
그런 다음 제거하려는 :
숫자 또는 점 문자를 직접 제거하십시오 .
$ sed 's/:[0-9.]*//g' file.vcf
0|0 0|1 0|0 0|0
0|1 0|0 0|0 0|0
g
또한 각 줄에서 일치하는 모든 하위 문자열에 대해 끝 부분에서 교체를 반복 해야 합니다 .
주문,
sed 's/[:].*$//' file.vcf
:
첫 번째 문자와 일치한 다음줄 끝까지의 문자 수. 그래서 당신은 결국
0|0
0|1
출력으로.
이 표현과 제가 제안한 표현의 차이점은 (모든 단일 문자와 일치) 실제로 제거하려는 문자 집합을 제한 .
하도록 변경했다는 것입니다 . 또한 줄 중간에 있는 내용도 제거해야 하기 때문에 [0-9.]
패턴을 줄 끝에 고정할 수 없습니다 . $
마지막 g
으로 나는 이미 그것을 언급했습니다.