gzip圧縮ファイルの2つの列をマージし、マージされた列を別の列に置き換えます。

gzip圧縮ファイルの2つの列をマージし、マージされた列を別の列に置き換えます。

次のgzip圧縮ファイルがあります。

 1 rs571093408 rs571093408 13380 C G

最初の列と4番目の列を中間列とマージ:し、2番目の列を新しいコンテンツに置き換えようとしているので、出力は次のようになります。

 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

実行する1つのライナー:

$ 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

おすすめ記事