이것은 내 데이터 세트입니다.
chr1_KI270706v1_random,153401,rs867658023,chr1_KI270706v1_random_153401
chr1_KI270706v1_random,154751,rs1030747857,chr1_KI270706v1_random_154751
chr1_KI270706v1_random,156703,rs900345029,chr1_KI270706v1_random_156703
chr1_KI270706v1_random,156856,rs576837150,chr1_KI270706v1_random_156856
나는 실제로 다음과 같이 보이기를 원합니다.
chr1,153401,rs1867658023,chr1_153401
_KI_random
기본적으로 1열과 4열의 추가 값을 제거하고 싶습니다 . 이 명령을 시도했지만 원하는 결과를 얻지 못했습니다.
awk 'NR >1 {split($1, array, "_"); print array[1] "_" array[2]; split($2, array, "_"); print array[1] "_" array[2]}' outfile > rsid_final1.csv
답변1
이는 개별 라인을 간단히 대체하는 것이므로 sed를 사용합니다.
$ sed 's/_KI[^_,]*_[^_,]*//g' file
chr1,153401,rs867658023,chr1_153401
chr1,154751,rs1030747857,chr1_154751
chr1,156703,rs900345029,chr1_156703
chr1,156856,rs576837150,chr1_156856
그러나 원하는 경우 awk를 사용하여 동일한 작업을 수행할 수도 있습니다.
$ awk '{gsub(/_KI[^_,]*_[^_,]*/,"")} 1' file
chr1,153401,rs867658023,chr1_153401
chr1,154751,rs1030747857,chr1_154751
chr1,156703,rs900345029,chr1_156703
chr1,156856,rs576837150,chr1_156856
이것이 필요한 전부가 아닌 경우 위의 내용이 작동하지 않는 경우를 포함하여 보다 대표적인 입력/출력 예제를 제공하도록 질문을 편집하십시오.