data
다음과 같은 파일이 있습니다.
head data
19 54240283 . T C . . . 188,18:208:14:102:18:189:209:37.7222:37.4681:9:139:9:50:50.8889:40.3545:919.145:640.562:0
1 103020 . A C . . . 1,2:3:2:2:2:2:4:38:38:2:2:0:0:46.5:28:0.5:162:0
2 8797402 . G A . . . 0,3:3:3:0:3:0:3:38:0:0:3:0:38.3333:840.056:0
가장 중요한 정보는 4열과 6열 사이의 9열(가장 긴 열)에 숨겨져 있습니다 :
. 예를 들어:
19 54240283 . T C . . . 18:189
1 103020 . A C . . . 2:2
2 8797402 . G A . . . 3:0
마지막으로 이를 추출하고 이를 위한 새 열을 만들고 싶습니다. 예를 들어,
19 54240283 . T C . . . 18 189
1 103020 . A C . . . 2 2
2 8797402 . G A . . . 3 0
누구든지 이 작업을 수행하는 방법을 알아내도록 도와줄 수 있습니까? 감사해요!
답변1
앗해결책:
awk -F'[[:space:]]+|:' '{ print $1,$2,$3,$4,$5,$6,$7,$8,$13,$14 }' data | column -t
산출:
19 54240283 . T C . . . 18 189
1 103020 . A C . . . 2 2
2 8797402 . G A . . . 3 0
-F'[[:space:]]+|:'
- 공백은:
필드 구분 기호로 처리됩니다.
답변2
perl -pe 's|\d+,(\S+)$|join "\t", (split /:/, $1)[4,5]|e' data
결과
19 54240283 . T C . . . 18 189
1 103020 . A C . . . 2 2
2 8797402 . G A . . . 3 0