Como você deseja preservar suas colunas, é possível alterar o separador de campo de saída para tab
não space
, por exemplo, e será mais fácil para processamento adicional se você confiar na contagem de colunas. Então você pode usar o seguinte awk
:
awk 'BEGIN { OFS = "\t"; }; { if ($7 ~ "^[0-9]*$") $7 = " "; else $7 = $7; }; 1'
Na seção BEGIN
, estamos alterando o separador de campos de saída ( OFS
) para tab
. Na próxima seção, verificamos se 7 th contém apenas números e, se sim, alteramos o valor para space
, se não mantermos o valor. Mas com $7 = $7
estamos certos de que reconstruímos a linha atual (registro) por causa da OFS
alterada. A alteração de OFS
garante mais processamento com awk
que a saída conterá 8 colunas se o separador de campo ( FS
) estiver definido como tab
.