gzip 압축 파일의 두 열을 병합하고 병합된 열을 다른 열로 바꿉니다.

gzip 압축 파일의 두 열을 병합하고 병합된 열을 다른 열로 바꿉니다.

다음과 같은 gzip 압축 파일이 있습니다.

 1 rs571093408 rs571093408 13380 C G

첫 번째 열과 네 번째 열을 중간 열과 병합 :하고 두 번째 열을 새 콘텐츠로 바꾸려고 하므로 출력은 다음과 같습니다.

 1 1:13380 rs571093408 13380 C G

입력은 gzip 압축 파일이고 출력 파일은 gzip 압축으로 만들고 싶습니다.

답변1

이 명령을 사용하여 gzip 압축 파일의 내용을 인쇄할 수 있습니다 zcat.

따라서 소스 파일을 인쇄하십시오 file1.gz.

$ zcat file1.gz
1 rs571093408 rs571093408 13380 C G
2 rs200000002 rs222222222 12222 D E
3 rs300000003 rs333333333 13333 F K

실행할 하나의 라이너:

$ zcat file1.gz|awk '{print $1" "$1":"$4,$3,$4,$5,$6}'|gzip > file2.gz

file2.gz결과 파일의 내용을 인쇄합니다 .

$ zcat file2.gz
1 1:13380 rs571093408 13380 C G
2 2:12222 rs222222222 12222 D E
3 3:13333 rs333333333 13333 F K

고쳐 쓰다. 아래 의견을 기반으로 개선된 버전을 추가합니다.

$ zcat file1.gz|awk '{$2=$1":"$4}1'|gzip > file2.gz

답변2

내가 사용한 코드는 다음과 같습니다.

zcat file.gz | awk '{$2=$1":"$4}1' | gzip > new_file.gz | mv new_file.gz file.gz

mv new_file.gz file.gz마지막으로 새 파일을 이전 파일로 교체합니다.

관련 정보