Linux
合併 gzip 文件的兩列並將合併的列替換為另一列
我有一個 gzipped 文件,看起來像這樣:
1 rs571093408 rs571093408 13380 C G
我想將第一列和第四列與
:
中間合併,並用新內容替換第二列,所以輸出如下所示:1 1:13380 rs571093408 13380 C G
輸入是一個壓縮文件,我希望輸出文件被壓縮。
您可以使用命令列印 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