Como algumas iterações de esclarecimento mostraram, apenas números inteiros e com valores não maiores que 777 devem ser coletados em uma lista separada por vírgulas. Aqui vamos nós:
awk -F ')' '$1~/^[0-9]+$/ && $1<=777 {print $1}' <datafile | paste -sd,
Nota: Para corresponder a um intervalo inteiro, você pode em awk
também escrever:
awk -F ')' '$1>=1 && $1<=777 {print $1}' <datafile | paste -sd,
Eu mantenho as variantes abaixo como blocos de construção para tarefas relacionadas.
Para criar todos os números de pergunta :
cut -d ')' -f1 <datafile | paste -sd,
que cria esta saída:
1,2,3,...,582
Ou, se entradas com respostas vazias (como 777) não serão consideradas:
awk -F ') ?' '$2!="" {print $1}' <datafile | paste -sd,
Ou, se houver um limite numérico de 777 para considerar:
awk -F ')' '$1<=777 {print $1}' <datafile | paste -sd,
Ou para corresponder apenas a números inteiros no primeiro campo:
awk -F ')' '$1~/^[0-9]+$/ {print $1}' <datafile | paste -sd,