시스템에 설치된 모든 패키지 목록을 가져 오려고합니다. 이를 위해 파이썬 스크립트 내에서 'rpm -qai'를 호출하여 출력에 대한 추가 변환이 발생합니다.분리자를 사용하여 rpm 쿼리 출력 형식 지정
위의 쿼리 결과가 다른 패키지를 구분하지 못하게되어 문제가 발생했습니다.
$ rpm -qai
Name : PackageName
Version : 1.0
...
LastEntry: Something
Name : NextPackageName
Version : 1.1
...
내가 원하는 것은 내 스크립트 라인의 모든 라인을 읽고 사전에 선을 절약 할 수 있기 때문에
Name : PackageName
Version : 1.0
...
LastEntry: Something
//empty line or some other kind of separator
Name : NextPackageName
Version : 1.1
...
의 라인을 따라 뭔가 : 이것은 다음과 같이 보입니다. 현재 해결 방법은 현재 행이 'Name'으로 시작하고, 그렇다면 사전을 목록에 추가하고 사전을 삭제하는 것으로 진행합니다. 이 단계는 맨 처음 줄을 건너 뛰었습니다.
이 솔루션은 꽤 추합니다. 안타깝게도 모든 패키지가 동일한 양의 정보를 제공하지는 않기 때문에 고정 된 수의 행이 작동하지 않습니다.
나는 또한 'rpm -qai'를 먼저 실행하고 모든 패키지 이름의 목록을 검색 한 다음 'rpm -qi current_item'을 호출하면서 목록을 반복 실행한다고 생각했습니다. 그러면 각각의 단일 쿼리에서 결과를 얻을 수 있습니다. 그러나이 작업은 두 번 실행해야하므로 불필요한 추가 작업으로 간주됩니다.
그래서 RPM (또는 다른 도구)은 원하는 출력을 허용하는 기능을 제공합니까?
이것은 좋은 제안이지만 실제로 대답이 아닙니다. –