이 코드가 포함된 스크립트가 있습니다.
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