여러 기본 행이 있는 각 열의 첫 번째 행을 추출합니다.

여러 기본 행이 있는 각 열의 첫 번째 행을 추출합니다.

예를 들어:

docker0: flags=4099<UP,BROADCAST,MULTICAST
        inetasdfsd fdsfdsf sdfdsf 
        asfdsa dafdsg sfgfsg sgsgd
dockerApps: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  
           inet dsfsdf sdfds sdfdsf 
           inetdfdsf sdgdsg gdsgdsg sdgds 

ens192: flags=4163<UP,BROADCAST
       inet sfsf sf sf sf sf sf s
       inedfs sf s sffs fsf sf s

내가 원하는 것은:

docker0: flags=4099<UP,BROADCAST,MULTICAST
dockerApps: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 
ens192: flags=4163<UP,BROADCAST

잠깐, 위의 세 가지에 해당할 뿐만 아니라 ifconfig의 출력에 따라 인터페이스 상태를 캡처해야 합니다.

*1달러에 도움말 인쇄 가능

docker0:
dockerApps:
ens192:

답변1

공백으로 시작하지 않는 모든 줄을 인쇄하려면 다음을 사용할 수 있습니다.

grep '^[^ ]'

공백이나 탭인 경우 POSIX 클래스를 사용할 수 있습니다.

grep '^[^[:space:]]'

첫 번째 ^의미는줄의 시작, []문자 클래스가 외부적으로 도입되었습니다. ^문자 클래스는 내부적으로 이를 부정하므로 일치합니다.나열된 캐릭터를 제외한 모든 캐릭터. [:space:]모든 공백과 일치합니다.

답변2

ifconfig | awk '/docker|ens192/{print $0}' 

제가 테스트한 대로 위의 명령을 사용해보세요. 정상적으로 작동합니다.

관련 정보