필요한 것은 쉽게 설명할 수 있지만 할 수는 없습니다. :-( 명령 출력을 grep하고 싶습니다.일치하는 줄과 x 줄 뒤에 표시하지 않음저것. 예를 들어.
# fdisk -l
Disk /dev/ram0: 64 MiB, 67108864 bytes, 131072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram1: 64 MiB, 67108864 bytes, 131072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
"ram" 문자열이 있는 줄과 그 뒤의 6줄을 건너뛰고 싶으므로 출력은 다음과 같습니다.
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
그것은 마치sudo fdisk -l | grep -v "ram" -A 6
답변1
GNU sed를 사용하는 또 다른 방법:
| sed '/ram/,/^$/d;/^$/d'
산출:
디스크 /dev/sda: 931.5 GiB, 1000204886016바이트, 1953525168 섹터 단위: 섹터 1 * 512 = 512바이트 섹터 크기(논리/물리): 512바이트/4096바이트 I/O 크기(최소/최적): 4096바이트/4096바이트