예: 내 범위는 10.0.100.0에서 10.0.224.0이며 다음과 같은 출력을 원합니다.
10.0.100.*
10.0.101.*
10.0.102.*
등.
답변1
$ 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...]
답변2
노력하다 sed
:
$ sed -i 's/[0-9]\+$/\*/' file.txt
10.0.100.*
10.0.101.*
10.0.102.*
편집하다: 범위를 먼저 생성한 다음 마지막 옥텟을 바꾸려면 다음을 시도하십시오.
사용할 수 있는 범위를 생성하려면 echo 10.0.{100..224}.0 | tr ' ' '\n'
(John1024의 답변은 사용하는 또 다른 접근 방식을 보여줍니다 printf
).
이제 마지막 옥텟을 다음으로 바꾸고 *
파일에 저장합니다.
$ echo 10.0.{100..224}.0 | tr ' ' '\n' | sed 's/[0-9]\+$/\*/' > output.txt
출력만 인쇄하려는 경우:
$echo 10.0.{100..224}.0 | tr ' ' '\n' | sed -n 's/[0-9]\+$/\*/p'
*
귀하의 경우에는 범위를 생성할 때 마지막 옥텟만 만드는 것이 좋습니다 (확인John1024의 답변).