MAC 주소를 통한 루프, "for" 루프에서 숫자(0-9) 및 문자(af)를 처리하는 방법

MAC 주소를 통한 루프, "for" 루프에서 숫자(0-9) 및 문자(af)를 처리하는 방법

이 코드가 포함된 스크립트가 있습니다.

for i in {2..9}
        do 
        grep "Node${i}\|01, source address = 00:00:00:00:00:0${i}" t1.txt > t2.txt
        done

"a"에서 "f"까지의 경우도 처리되도록 루프를 "9"에서 16진수 MAC 주소의 "f" 문자로 확장할 수 있습니까?

답변1

문자에 대해 또 다른 중괄호 확장을 추가하면 됩니다.

for i in {2..9} {a..f}
do 
    grep "Node${i}\|01, source address = 00:00:00:00:00:0${i}" t1.txt > t2.txt
done

이는 실제로 원하는 것이 아닐 수도 있습니다. 이 코드를 실행할 때마다 해당 내용을 덮어쓰므 t2.txt로 최종 반복 결과만 볼 수 있습니다. 일치하지 않으면 다른 콘텐츠가 일치하더라도 빈 파일을 받게 됩니다. 어쩌면 다음을 추가하고 싶을 수도 있습니다.

for i in {2..9} {a..f}
do 
    grep "Node${i}\|01, source address = 00:00:00:00:00:0${i}" t1.txt >> t2.txt
done

또는 루프가 전혀 필요하지 않으며 다음을 수행해야 할 가능성이 높습니다.

grep -E 'Node[2-9a-f]|01, source address = 00:00:00:00:00:0[2-9a-f]' t1.txt > t2.txt

관련 정보