다음과 같은 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
마지막으로 새 파일을 이전 파일로 교체합니다.