특정 문자가 포함된 열을 추출하여 별도의 파일에 저장

특정 문자가 포함된 열을 추출하여 별도의 파일에 저장

100만 개 이상의 열과 800개 행이 포함된 대용량 파일이 있습니다. 첫 번째 줄은 염색체 이름(Ha412HOChr01, Ha412HOChr02, .....Ha412HOCHr17)과 각 염색체의 SNP 위치입니다. 그들은 총 17개의 염색체를 가지고 있습니다. 각 염색체의 열(Ha412HOCHr01, Ha412HOChr01, Ha412HOCHr01, ...., Ha412HOCHr17)을 추출하여 별도의 파일에 저장하고 싶습니다.

"Ha412HOChr01:180159" "Ha412HOChr01:210724" "Ha412HOChr01:303270" "Ha412HOChr01:303280"....... "Ha412HOChr17:303402"
0 1 0 0 ......0
0 1 0 0 ......0
0 1 0 0 ......0
0 2 0 0 ......0
0 1 1 1 ......1
0 2 0 0 ......0

내가 원하는 출력(예: 염색체 1):

out.chrom1
"Ha412HOChr01:180159" "Ha412HOChr01:210724" "Ha412HOChr01:303270" "Ha412HOChr01:303280" 
0 1 0 0 
0 1 0 0
0 1 0 0 
0 2 0 0 
0 1 1 1 
0 2 0 0 
0 0 0 0 
0 2 0 0
0 1 2 2 

답변1

필드 구분 기호가 공백인 경우 Miller(https://github.com/johnkerl/miller) 당신은 실행할 수 있습니다

mlr --csv --fs " " cut -r -f "Ha412HOChr01:" input.txt

"Ha412HOCHr01" 데이터 가져오기

Ha412HOChr01:180159 Ha412HOChr01:210724 Ha412HOChr01:303270 Ha412HOChr01:303280
0 1 0 0
0 1 0 0
0 1 0 0
0 2 0 0
0 1 1 1
0 2 0 0

그런 다음 for 루프를 만들고 모든 파일을 만들 수 있습니다.

관련 정보