lpr과 함께 사용할 수있는 프린터 이름을 나열하는 방법은 무엇입니까?


55

그만큼 lpr 맨 페이지에 대상 프린터가 -P 깃발.

-P destination[/instance]
    Prints files to the named printer.

나는 Ubuntu / Gnome의 GUI를 사용하여 로컬 Samba 공유에 다양한 프린터를 추가했습니다. 사용 가능한 프린터 목록을 -P 플래그는 (아마도 bash 쉘에서) 바람직합니까?

답변:



12

사용할 수있는 목록을 얻으려면 다음을 수행하십시오.

lpstat -a

또는

cat /etc/printcap

프린터 이름 만 인쇄하려면 다음과 같이하십시오.

lpstat + 읽기 + 배열 :

$ while read l; do l=($l); echo "${l[0]}"; done <<< "$(lpstat -a)"

lpstat + awk :

$ lpstat -a | awk '{print $1}'

lpstat + cut :

$ lpstat -a | cut -f1 -d ' '

고양이 + grep + 인하 /etc/printcap:

$ cat /etc/printcap | cut -f1 -d'|' | grep '^#' -v

이것은 한 줄에 하나씩 표시됩니다.

HP_LaserJet_P1606dn
HP_Deskjet_2540_series
HP_LaserJet_M1212nf
GCP-Save_to_Google_Docs

나는 마치 lpstat 솔루션은보다 우아하고 신뢰할 수 있습니다. 대체로 /etc/printcap 내가 테스트 한 일부 시스템에서는 발견되지 않았습니다.

사용 방법 awk 또는 cut, 당신이 설치하고 선호하는 것에 달려 있습니다. bash read + bash array 옵션은 외부를 필요로하지 않고 모든 bash 쉘에서 작동해야합니다.

편집하다 : 표시된 솔루션이 Amazon Linux에서 저에게 아무런 효과가 없다고 말했습니다. 하지만 출력의 나머지 부분에서 프린터 이름을 복사하려는 경우 작동하는 것 같아요. 사용하는 것과 똑같이 작동합니다. lpstat -a.

$ lpstat -p -d
printer HP_Deskjet_2540_series is idle. enabled since Tue 22 Dec 2015 01:12:10 PM BRST
. . .
printer GCP-Save_to_Google_Docs is idle. enabled since Tue 15 Dec 2015 02:13:33 AM BRST
system default destination: HP_LaserJet_P1606dn

lpstat + cut은 OS X에서도 작동합니다.
tresf

출력 샘플에 따르면, lpstat -p -d 작동하는 것 같습니다 ...
Skippy le Grand Gourou

미안하지만 그는 묻는다. How can I get a list of these available printers in the format that the (lpr) -P flag expects. 나의 예 lpstat -p -d 분명히 그걸로 프린터 이름 이상을 얻는다는 것을 분명하게 보여줍니다. 어떤 경우에는 해당 출력을 사용할 수 없습니다. lpr -P $PRINTERNAME 요구. 그래서 아니야! lpstat -p -d 내가 준 예제에서 작동하지 않습니다.
Gus Neves
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.