그래서 나는 이것을 가지고 있습니다.
INTERFACES=($(ip -o link show | awk -F': ' '{print $2}'))
인터페이스 배열을 제공했지만 배열에서 루프백 및 tun 어댑터를 제거하고 싶습니다.
INTERFACES=(${INTERFACES[@]/lo/})
INTERFACES=(${INTERFACES[@]/tun*/})
작동하지만 한 줄로 수행하는 방법이 있습니까?
아마도 매우 쉽고 derp 일 것입니다.하지만 표현식이 실제로 어떻게 작동하는지 이해하고 싶습니다 (Google은 위의 47239432 예제를 제공했지만 작동 방식을 설명하지 않았거나 한 번에 하나 이상의 표현식을 사용하는 예제를 제공하지 않았습니다).
나는 이것이 awk 명령으로 수행 될 수 있다는 것을 알고 있으므로 awk가있는 솔루션과 배열 필터가있는 솔루션 모두 크게 감사 할 것입니다. :)
이것이 어리석은 질문이라면 사과드립니다.
이를 수행하는 방법에는 여러 가지가 있습니다. 한 가지 예 :
# arr=(lo tun0 net1 net2)
# echo ${arr[@]}
lo tun0 net1 net2
# arr=( $( printf '%s\n' ${arr[@]} | egrep -v '^(lo|tun)' ) )
# echo ${arr[@]}
net1 net2
#
또한 맨 처음에 이러한 인터페이스를 제외 할 수도 있습니다.
INTERFACES=( $(ip -o link show | awk -F': ' '$2 !~ /^(lo|tun)/ {print $2}') )
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다