次のファイルがあります。
head new_fileset_prefix_17.sampleT
ID_1 ID_2 missing
0 0 0
0 fam1000_G1000 0
0 fam1001_G1001 0
0 fam1003_G1003 0
0 fam1005_G1005 0
0 fam1009_G1009 0
...
私は次のような出力を得たいと思います。
ID_1 ID_2 missing
0 0 0
fam1000 G1000 0
fam1001 G1001 0
fam1003 G1003 0
fam1005 G1005 0
fam1009 G1009 0
...
ベストアンサー1
単一の文字列に対して単純なs / old / newを実行するための最良のツールはsedです。
$ sed 's/^[0-9]* \([^_]*\)_/\1 /' file
ID_1 ID_2 missing
0 0 0
fam1000 G1000 0
fam1001 G1001 0
fam1003 G1003 0
fam1005 G1005 0
fam1009 G1009 0
しかし、awkでは、次のようにすることができます。
$ awk '/^[0-9]/ && sub(/_/," ",$2){$0=$2 OFS $3} 1' file
ID_1 ID_2 missing
0 0 0
fam1000 G1000 0
fam1001 G1001 0
fam1003 G1003 0
fam1005 G1005 0
fam1009 G1009 0