如何使用Linux shell脚本解析给定字符串中的特定键

如何使用Linux shell脚本解析给定字符串中的特定键

我有以下模式,只想解析 /sys/bus/pci/devices/ 和 /device 之间的一个字段

示例 1 输入:/sys/bus/pci/devices/0000:07:00.0/device:0x017a

所需输出:0000:07:00.0

示例 2 输入:/sys/bus/pci/devices/0000:08:00.0/device:0x0abc

所需输出:0000:08:00.0

答案1

如果您的输入总是那么规律,那么一个简单的cut命令就可以完成这项工作

cut -d/ -f6

例如

% echo /sys/bus/pci/devices/0000:07:00.0/device:0x017a | cut -d/ -f6
0000:07:00.0

% echo /sys/bus/pci/devices/0000:08:00.0/device:0x0abc | cut -d/ -f6
0000:08:00.0

答案2

如果输入没有固定数量的/,您也可以使用 grep 和上下文:

$ ... | grep -Po 'devices/\K.*?(?=/device)'

相关内容