Linux 쉘 스크립트를 사용하여 주어진 문자열의 특정 키를 구문 분석하는 방법

Linux 쉘 스크립트를 사용하여 주어진 문자열의 특정 키를 구문 분석하는 방법

다음 스키마가 있고 /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)'

관련 정보