lpr
のmanページには、宛先プリンタを-P
フラグで指定できると書かれています。
-P destination[/instance] Prints files to the named printer.
Ubuntu/GnomeのGUIを使用して、ローカルのSamba共有にさまざまなプリンタを「追加」しました。どのように私は-P
フラグが期待するフォーマットでこれらの利用可能なプリンタのリストを得ることができますか(できればbashシェルから)?
$ lpstat -p -d
CUPSマニュアル から。
lpstat -a
または
cat /etc/printcap
lpstat + read + array:
$ 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 ' '
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配列オプションは、外観を必要とせずにあらゆる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