Usando awk
somente com construções definidas POSIX,
awk 'match($4, /Gene:(.+)\:/){ $4=substr($4, RSTART, RLENGTH-1) }1' file
Para tornar a saída um pouco mais alinhada, canalize a saída para | column -t
, o que separará suas colunas. Se você não tiver certeza da posição de Gene:genename
em sua linha, altere o awk
para procurar o padrão em qualquer lugar dentro da linha e modifique a quarta coluna com o valor necessário. Mudar para $4
para $0
(toda a linha) deve funcionar bem.
awk 'match($0, /Gene:(.+)\:/){ $4=substr($0, RSTART, RLENGTH-1) }1' file