• ベストアンサー

Solaris8 でのテキスト印刷について

Solaris8でテキスト印刷処理を行いたいのですが、以下の処理をコマンドオプションでできないでしょうか? 使用コマンド:lpまたはlpr(実現可能であればどちらでも構いません) 行いたい処理:先頭行を2~3行スキップ,左のカラム半角4文字のインデント できるだけ印刷テキストを編集せずに行いたいと考えています。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • HOGERA3
  • ベストアンサー率35% (50/139)
回答No.1

# perl -ne 'print " ", $_ if $. > 2' ファイル | jtops | lpr でどうでしょう。 上の例では先頭の3行をスキップします。 2行にしたければ $. > 2 を $. > 1 にすればOKです。

ken__t
質問者

補足

回答ありがとうございます。 質問に際する情報が不足していました。失礼いたしました。 Cシェルからのコマンド実行(lp,lprまたは他のコマンド)で印刷を行うのが目的です。 印刷対象のテキストには、印刷時のイメージの状態で保存されています。 (1ページの行数をコントロールし改ページコードも含まれています。) 印刷イメージを編集する事は最終手段としたいのでよろしくお願いいたします。

その他の回答 (2)

  • HOGERA3
  • ベストアンサー率35% (50/139)
回答No.3

> 仕様の制限でPerlは使えません。 そうなんですか。 それではawkは使えますでしょうか。 もし使えるのなら % awk 'NR > 2 {print " ", $0}' ファイル でNo.2と同じ効果が得られます。 ""で囲んでるのは半角スペース4つです。 半角スペース1つに表示されてるでしょうけど。

ken__t
質問者

お礼

回答ありがとうございました。 新たな問題が発生してしまい、やはりオプションを使用しなければならなくなってしまいました。 スキップとインデントはファイルを生成する時に盛り込む事になりました。 今回の質問はこれで閉じなくてはならなくなってしまいました。 サンプルをこちらで検証しましたら、希望の動作を確認する事が出来ました。 次回、この問題が発生したときに対応の手段の1つにしたいと思います。 ありがとうございました。

  • HOGERA3
  • ベストアンサー率35% (50/139)
回答No.2

> 印刷対象のテキストには、印刷時のイメージの状態で保存されています。 > (1ページの行数をコントロールし改ページコードも含まれています。) % lpr テキストファイル で印刷できるってことですか? (対象テキストがpsファイルか何かになっている?) それともフツーのテキストファイルだけど ^Lで強制的に改ページするようになっているんでしょうか? 前者の場合にはどうしたらいいかわかりません。 後者の場合でしたら、No.1の方法 % perl -ne 'print " "x4, $_ if $. > 2' ファイル で標準出力に所望の結果(先頭3行スキップ・4文字インデント)が 出力されると思います。 対象ファイルに変更が加えられることはありません。

ken__t
質問者

補足

度々ありがとうございます。 仕様の制限でPerlは使えません。 ちなみに印刷対象のテキストは後者の >>^Lで強制的に改ページするようになっている です。 lpコマンド、lprコマンドでも印刷できることは確認できましたが、行のスキップと 左端のインデントのオプション指定がわかりません。 よろしくお願いいたします。

関連するQ&A