제거된 패키지 목록을 인쇄하는 스크립트를 작성 중입니다.
#!/bin/bash
declare -a LIST_OF_PACKAGES=("php5" "nginx")
for i in "${LIST_OF_PACKAGES[@]}"
do
PACKAGE_STATUS=`dpkg-query -W -f='${Status} ${Version}\n' $i | grep --line-buffered -v "install ok"`
ECHO=`echo $i * $PACKAGE_STATUS * $i`
done
for 루프에 다음 줄을 포함하려고 합니다.
echo $ECHO | awk -F "*" '{print $1}' | sed '/^\s*$/d'
기본적으로 설치되지 않은 패키지를 grep하려고 합니다. 그래서 "*"를 기준으로 목록을 잘라냅니다.
현재 출력:
unknown ok not-installed
원하는 출력:
nginx * unknown ok not-installed
설치된 패키지를 무시하고 싶습니다.
답변1
aptitude를 직접 사용하여 제거된 패키지를 나열할 수 있습니다.
aptitude search "!(~i)"
더 명확하지만 동등한 형식을 사용할 수도 있습니다.
aptitude search "?not(?installed)"
패키지 이름만 인쇄하려면 형식 옵션을 추가하면 됩니다.
aptitude -F "%p" search "?not(?installed)"
읽다적성에서 검색어 참고,굉장히 유용하다.