텍스트를 필터링하고 특정 위치의 빈 줄을 제거하는 방법

텍스트를 필터링하고 특정 위치의 빈 줄을 제거하는 방법
# lshw -c 네트워크-버스정보
버스정보기기 카테고리 설명
================================================= = ======
pci@0000:03:00.0 enp3s0 네트워크 I210 기가비트 네트워크 연결
pci@0000:04:00.0 mec_test_1 네트워크 I350 기가비트 네트워크 연결
pci@0000:04:00.1 mec_test_2 네트워크 I350 기가비트 네트워크 연결
pci@0000:04:00.2 mec_test_3 네트워크 I350 기가비트 네트워크 연결
pci@0000:04:00.3 mec_test_4 네트워크 I350 기가비트 네트워크 연결
pci@0000:b5:00.0 네트워크 Intel Corporation
pci@0000:b5:00.1 네트워크 Intel Corporation
pci@0000:b5:00.2 mec_test_5 네트워크 Intel Corporation
pci@0000:b5:00.3 enp181s0f3 네트워크 Intel Corporation

Device 공백을 전달하려면 어떻게 해야 합니까? 좋다

버스정보기기 카테고리 설명
================================================= = ======
pci@0000:03:00.0 enp3s0 네트워크 I210 기가비트 네트워크 연결
pci@0000:04:00.0 mec_test_1 네트워크 I350 기가비트 네트워크 연결
pci@0000:04:00.1 mec_test_2 네트워크 I350 기가비트 네트워크 연결
pci@0000:04:00.2 mec_test_3 네트워크 I350 기가비트 네트워크 연결
pci@0000:04:00.3 mec_test_4 네트워크 I350 기가비트 네트워크 연결
pci@0000:b5:00.2 mec_test_5 네트워크 Intel Corporation
pci@0000:b5:00.3 enp181s0f3 네트워크 Intel Corporation

답변1

간단한 방법은 grep에게 19열에서 공백이 아닌 문자를 찾도록 요청하는 것입니다.

lshw -c network -businfo | grep -E '^.{18}[^ ]'

grep명령은 줄의 시작 부분에 고정된 패턴을 찾고 그 뒤에는 18개의 임의 문자와 공백이 아닌 내용이 옵니다.

또는 공백 대신 TAB이 있는 경우 다음 클래스를 사용하세요 [:space:].

lshw -c network -businfo | grep -E '^.{18}[^[:space:]]'

관련 정보