awk -v col=2 -F '\t' '{$col=gsub(",", "", $col)+1; print}'
col
é um parâmetro que representa o número da coluna analisada e -v
atribui 2 a ele.
-F '\t'
define o separador de campo como o caractere de tabulação 1 . gsub
retorna o número de substituições, por isso está sendo usado para contar as número de vírgulas. O resultado é atribuído à coluna analisada e o% final print
exibe todas as colunas.
$ cat input
AC 1,23,5
DC 2,8,89
XX 3,4,5,6,7 YYY,ZZZ
$ awk --assign col=2 -F '\t' '{$col=gsub(",", "", $col)+1; print}' < input
AC 3
DC 3
XX 5 YYY,ZZZ
1 Algumas implementações do awk podem não analisar \t
e nesse caso você pode usar algum Bash específico citando - $'\t'
- que passará o próprio caractere de tabulação para awk.