Um grep normal em si só fornece a linha correspondente. Remover a parte inútil dessa é outra etapa.
Primeiro, você provavelmente deseja um padrão mais parecido com ^1\. . O cursor circunscreve a correspondência no início da linha, e a barra invertida faz com que o ponto corresponda apenas a um ponto literal, em vez de "qualquer caractere", que é o significado especial de um ponto sem escape. Sem eles, o padrão corresponderia a um 1 como parte do URL ou a um número 12 no início da linha, etc.
Depois, você precisa remover o número no começo da linha. sed é útil aqui. sed removeria qualquer número de dígitos, mais um ponto e um espaço no início da linha. Então poderíamos escrever isso:
$ grep -e '^1\.' urls | sed 's/^[0-9]*\. //'
Mas o comando de substituição de sed também funciona como uma condição, isso tentaria substituir o número fornecido por nada e imprimir a linha resultante se a substituição fosse feita:
$ sed -ne 's/^1\. //p' urls
( -n significa não imprimir todas as linhas, como é o comportamento padrão.)