"seq"를 사용하여 한 열이 5이면 다른 열을 계속 사용합니다.

"seq"를 사용하여 한 열이 5이면 다른 열을 계속 사용합니다.

예를 들어, 가장 오른쪽 열부터 계산을 시작하고 5에 도달하면 두 번째 가장 먼 열부터 계속 계산하고 싶습니다.

0.0.0.0
0.0.0.1
0.0.0.2
0.0.0.3
0.0.0.4
0.0.0.5
0.0.1.5
0.0.2.5
0.0.3.5
0.0.4.5
0.0.5.5
0.1.5.5
0.2.5.5
0.3.5.5
0.4.5.5
0.5.5.5
1.5.5.5
2.5.5.5
3.5.5.5
4.5.5.5
5.5.5.5

지금까지 나는 다음을 사용할 생각입니다.

for i in $(seq 0 5); do echo "0.0.0.$i"; done

한 번 i == 5설정 i=0하고 에코를 세 번째 위치로 이동합니다.

답변1

루프를 사용하십시오.

{
  for i in $(seq 0 5); do echo "0.0.0.$i"   ; done;
  for j in $(seq 1 5); do echo "0.0.$j.$i"  ; done;
  for k in $(seq 1 5); do echo "0.$k.$j.$i" ; done;
  for l in $(seq 1 5); do echo "$l.$k.$j.$i"; done;
}

awk단일 라인 입력의 반복 시간과 조정 가능한 필드 수를 늘리려면 더 많은 유연성을 사용하십시오 .

awk -F"." -v OFS="." -v repeat=5 '
{ print $0;
  for(c=NF; c>=1; c--){
      for (i=1; i<=repeat; i++) { $c=i ; print $0; };
  };
}' <<<'0.0.0.0'

관련 정보