Linux용 출력이 있습니다.
Size: 8192 MB
Locator: CPU0
Bank Locator: DIMM01
Size: No Module Installed
Locator: CPU0
Bank Locator: DIMM02
Size: 8192 MB
Locator: CPU0
Bank Locator: DIMM03
Size: No Module Installed
Locator: CPU0
Bank Locator: DIMM04
Size: 8192 MB
Locator: CPU0
Bank Locator: DIMM05
Size: No Module Installed
Locator: CPU0
Bank Locator: DIMM06
Size: 8192 MB
Locator: CPU1
Bank Locator: DIMM07
Size: No Module Installed
Locator: CPU1
Bank Locator: DIMM08
Size: 8192 MB
Locator: CPU1
Bank Locator: DIMM09
Size: No Module Installed
Locator: CPU1
Bank Locator: DIMM10
Size: 8192 MB
Locator: CPU1
Bank Locator: DIMM11
Size: No Module Installed
Locator: CPU1
Bank Locator: DIMM12
DIMM 진단을 위한 것입니다. DIMM에서 "모듈이 설치되지 않음"이라는 출력을 제거하고 싶습니다. 그래서 명령을 실행하면 다음과 같이 표시됩니다.
Size: 8192 MB
Locator: CPU0
Bank Locator: DIMM01
Size: 8192 MB
Locator: CPU0
Bank Locator: DIMM03
Size: 8192 MB
Locator: CPU0
Bank Locator: DIMM05
Size: 8192 MB
Locator: CPU1
Bank Locator: DIMM07
Size: 8192 MB
Locator: CPU1
Bank Locator: DIMM09
Size: 8192 MB
Locator: CPU1
Bank Locator: DIMM11
"Locator:" 및 "Bank Locator:" 결과가 항상 동일하지는 않으므로 "Size: No memory Installed"를 식별한 후 다음 두 줄을 삭제해야 합니다.
답변1
대하다개행 문자 개행 문자기록 구분 기호로. "설치된 모듈 없음"이 포함되지 않은 일치 레코드:
awk 'BEGIN { RS="\n\n"; ORS=RS } !/No Module Installed/' dimmsfile
답변2
사용 sed
:
sed '/Size: No Module Installed/,/^$/d' file
답변3
이것이 효과가 있다면, 더 간단한 접근 방식은 유효한 크기가 포함된 행의 정보만 표시한 다음 그 위에 2행(또는 빈 행을 원하는 경우 3행)을 포함하는 것입니다. 위의 출력을 기반으로 하면 다음과 같이 간단합니다.
your_output_command | grep -E "Size: [0-9]* MB" -A 2
이는 임의 개수의 숫자를 Size: [0-9]* MB
나타내는 정규식을 포함하는 행과 일치하고 일치 항목 다음에 오는 두 행도 인쇄합니다.[0-9]*
-A 2
DIMM 크기가 MB 이상으로 보고될 가능성이 있는 경우 이를 허용하도록 정규식을 업데이트할 수 있습니다. 예를 들어, MB와 GB가 모두 가능하다면 다음과 같습니다 your_output_command | grep -E "Size: [0-9]* [GM]B" -A 2
.
역방향 일치를 기반으로 콘텐츠를 필터링해야 한다면 다음 질문을 던져 보세요.역방향으로 grep하고 "이전" 및 "이후" 줄을 제외하는 방법가능한 답변이 있지만 원하는 것을 일치시키고 이를 기반으로 추가 라인을 포함하는 것보다 더 복잡합니다.
Malte Skoruppa의 의견을 바탕으로 답변이 업데이트되었습니다.