linux - 使用 grep 显示硬盘设备的名称

标签 linux terminal grep

为什么执行此命令:

[jalal@galapagos-20] (42)$ dmesg | egrep '(s|h)d[a-z]'

显示以下内容?可以一步步展示吗?

ACPI: SSDT 00000000d8ffbbd8 03528 (v01 SaSsdt  SaSsdt  00003000 INTL 20091112)
NMI watchdog enabled, takes one hw-pmu counter.
sd 0:0:0:0: [sda] 500118192 512-byte logical blocks: (256 GB/238 GiB)
sd 0:0:0:0: [sda] 4096-byte physical blocks
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2 sda3 sda4 sda5 sda6 sda7
sd 0:0:0:0: [sda] Attached SCSI disk
EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: 
dracut: Mounted root filesystem /dev/sda3
snd_hda_intel 0000:00:03.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
snd_hda_intel 0000:00:03.0: irq 33 for MSI/MSI-X
snd_hda_intel 0000:00:03.0: setting latency timer to 64
snd_hda_intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
snd_hda_intel 0000:00:1b.0: irq 34 for MSI/MSI-X
snd_hda_intel 0000:00:1b.0: setting latency timer to 64
sound hdaudioC1D2: autoconfig for ALC3220: line_outs=1 (0x1b/0x0/0x0/0x0/0x0) type:line
sound hdaudioC1D2:    speaker_outs=1 (0x14/0x0/0x0/0x0/0x0)
sound hdaudioC1D2:    hp_outs=1 (0x15/0x0/0x0/0x0/0x0)
sound hdaudioC1D2:    mono: mono_out=0x0
sound hdaudioC1D2:    inputs:
sound hdaudioC1D2:      Front Mic=0x1a
sound hdaudioC1D2:      Rear Mic=0x18
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: 
EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: 
EXT4-fs (sda4): mounted filesystem with ordered data mode. Opts: 
EXT4-fs (sda6): mounted filesystem with ordered data mode. Opts: 
EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: 
Adding 67108860k swap on /dev/sda2.  Priority:-1 extents:1 across:67108860k SS
snd_hda_intel 0000:00:1b.0: IRQ timing workaround is activated for card #1. Suggest a bigger bdl_pos_adj.

最佳答案

命令dmesg将内核日志缓冲区转储到标准输出。此输出由一堆日志消息组成,每条消息位于单独的行上。

该输出通过管道传送到带有选项(s|h)d[a-z]的命令egrepegrep 一次一行检查其标准输入(dmesg 的输出)是否与正则表达式 (s|h)d[a-z] 匹配。此正则表达式将匹配一系列字符,其中:

  • 第一个字符是 s 或 h
  • 第二个字符是 d
  • 第三个字符位于 a 和 z(小写字母 a 到 z)之间的 ASCII 范围(含)内。

egrep 将与所提供的正则表达式匹配的任何行打印到标准输出。

关于linux - 使用 grep 显示硬盘设备的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35075676/

相关文章:

c - sys_readlink 失败 EFAULT - 备选方案

linux - Bash 脚本检查大写字母的字符串

character-encoding - 精通编码的 grep 替代品?

html - Grep 包含 HTML 和空格的文件中的单词列表

c# - 使用 visual studio 和 MONO 为 Linux 环境编程

linux - 让 bash 脚本回答交互式提示

macos - 从 quicksilver 运行终端命令

regex - 如何使用 sed 流编辑器编写美元符号 ($)

linux - 使用 grep 时如何跳过第一行和最后一行?

linux - 如何使用 XLib 创建映射但不可见的窗口?