Supondo que seja suficiente verificar um dígito na primeira coluna:
awk '$1 ~ /[0-9]/ { print $2 }' data.in >data.out
Para garantir que isso seja aplicado somente às linhas após a linha NSET_OUTPUT
, você pode fazer algo como o seguinte:
sed '1,/NSET_OUTPUT/d' data.in | awk '$1 ~ /[0-9]/ { print $2 }' >data.out
Isso excluirá as linhas antes de NSET_OUTPUT
e enviará o restante para o script awk
.
Seu script produzirá apenas um número, uma vez que, para cada linha de entrada , procurará NSET_OUTPUT
e, se encontrado, pular cinco linhas antes de buscar o número da segunda coluna. / p>
O seguinte é uma versão fixa do seu script:
BEGIN { print_values = 0 }
$12 ~ /NSET_OUTPUT/ {
for (i = 1; i <= 5; i++) {
getline;
}
print_values = 1;
}
print_values == 1 {
x = $2;
print x >"nset_output.dat"
}