$ printf '%s\n' 10.0.{100..224}.\*
10.0.100.*
10.0.101.*
10.0.102.*
10.0.103.*
10.0.104.*
10.0.105.*
[...snip...]
exemplo: Eu tenho um intervalo de 10.0.100.0 a 10.0.224.0 e eu quero a saída assim:
10.0.100.*
10.0.101.*
10.0.102.*
e assim por diante
Experimente sed
:
$ sed -i 's/[0-9]\+$/\*/' file.txt
10.0.100.*
10.0.101.*
10.0.102.*
EDIT: Se você deseja gerar o intervalo primeiro e depois substituir o último octeto, tente isto:
Para gerar o intervalo, você pode usar echo 10.0.{100..224}.0 | tr ' ' '\n'
(a resposta de John1024 mostra outra maneira de usar printf
).
Agora, substitua o último octeto por *
e salve-o em um arquivo:
$ echo 10.0.{100..224}.0 | tr ' ' '\n' | sed 's/[0-9]\+$/\*/' > output.txt
Se você quiser apenas imprimir a saída:
$echo 10.0.{100..224}.0 | tr ' ' '\n' | sed -n 's/[0-9]\+$/\*/p'
Embora, no seu caso, eu sugira que você apenas disponibilize o último octeto *
ao gerar o intervalo (verifique a resposta de John1024 ).
Tags networking bash ip awk