나는 단지 오래된 라우터를 무차별 대입하려고 시도하고 있지만 for 루프는 실제로 아마추어 스타일입니다. 포함된 문자만 알고 있는 경우 멋진 for 루프를 어떻게 작성합니까? 이미 찾았습니다저것페이지에 나와 있지만 내 경우는 포함되어 있지 않습니다. 나는 다음과 같은 것을 생각했지만 분명히 작동하지 않습니다.
for word in $(cat charList)$(cat charlist); do echo ${word}; done
답변1
초기화
라우터를 공장 설정으로 재설정하고 그런 식으로 액세스하면 어떨까요? 시간이 덜 걸리고 몇 분 안에 반환될 수 있습니다.
For 루프
for
루프를 사용해야 하는 경우 :
$ cat charlist
a
b
c
d
e
f
g
이 구성은 다음과 같습니다.
$ for i in $(cat charlist); do for j in $(cat charlist); do echo $i$j;done;done
예
$ for i in $(cat charlist); do for j in $(cat charlist); do \
echo $i$j;done;done | tail -5
gc
gd
ge
gf
gg
| tail -5
전체 목록을 확인하세요 .
버팀대 확장 사용
Bash가 다음과 같이 문자 세트를 생성하도록 할 수도 있습니다:
$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
$ echo {1..20}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
예
$ for i in {a..z}; do for j in {a..z}; do echo $i$j;done;done | tail -5
zv
zw
zx
zy
zz
또한 루프를 모두 함께 사용하지 않고 중괄호 확장이 모든 작업을 수행하도록 할 수 있습니다.
$ echo {a..z}{a..z}
예
$ echo {a..z}{a..z} | cut -d" " -f1-10
aa ab ac ad ae af ag ah ai aj
다시 제거되었습니다 | cut -d" " -f1-10
. 이는 처음 10개 조합에 대한 답변에서 표시 목적으로 출력량을 제한하는 것입니다.
답변2
지원 확장:연속된 문자만 허용됩니다.
계층적 for 루프:이건 명령줄 낭비야
좋은 방법이 있다고 생각합니다.평가하다그리고버팀대 확장
$ cat charList
a,b,_,X,5,1,' ',-,')',3
$ eval echo "{$(cat charList)}{$(cat charList)}{$(cat charList)}"
불행히도 지금은 bash가 없지만 다음과 같이 하면 됩니다.
$ eval "for word in {$(cat charList)}{$(cat charList)}; do echo '${word}'; done"