$ lpstat -p -d
CUPS マニュアルより。
使用できるリストを取得するには:
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 + カット:
$ lpstat -a | cut -f1 -d ' '
cat + grep + /etc/printcap
でカット :
$ cat /etc/printcap | cut -f1 -d'|' | grep '^#' -v
1 行に 1 つずつ、次のように表示されます:
HP_LaserJet_P1606dn
HP_Deskjet_2540_series
HP_LaserJet_M1212nf
GCP-Save_to_Google_Docs
lpstat
のような気がします ソリューションはよりエレガントで信頼性があります。主に /etc/printcap
が原因 テストした一部のシステムでは見つかりませんでした。
awk
の使用について または cut
、インストールしたものと好みによって異なります。 bash read + bash array オプションは、externals を必要とせずに任意の 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