Supondo uma entrada restrita por tabulação:
$ cat data.in
a b c
A nancy bilbo baggins 0
B 0 darcy bender
C phantom menace Unix !!
D last row 0 the end
$ cat -t data.in
^Ia^Ib^Ic
A^Inancy^Ibilbo baggins^I0
B^I0^Idarcy^Ibender
C^Iphantom menace^IUnix^I!!
D^Ilast row^I0^Ithe end
Um script awk
para fazer o trabalho:
BEGIN { OFS = FS = "\t" }
NR != 1 {
for (i = 2; i <= NF; ++i) {
if ($i != "0") {
$i = "1";
}
}
}
{ print }
Executando:
$ awk -f script.awk data.in
a b c
A 1 1 0
B 0 1 1
C 1 1 1
D 1 0 1
O script compara cada campo (coluna) com o caractere único 0
(exceto o primeiro campo) e substitui tudo o que não é exatamente 0
por 1
. A saída será delimitada por tabulações.