プロが教える店舗&オフィスのセキュリティ対策術

Solaris8でテキスト印刷処理を行いたいのですが、以下の処理をコマンドオプションでできないでしょうか?

使用コマンド:lpまたはlpr(実現可能であればどちらでも構いません)

行いたい処理:先頭行を2~3行スキップ,左のカラム半角4文字のインデント

できるだけ印刷テキストを編集せずに行いたいと考えています。

よろしくお願いいたします。

A 回答 (3件)

> 仕様の制限でPerlは使えません。


そうなんですか。
それではawkは使えますでしょうか。
もし使えるのなら
% awk 'NR > 2 {print " ", $0}' ファイル
でNo.2と同じ効果が得られます。

""で囲んでるのは半角スペース4つです。
半角スペース1つに表示されてるでしょうけど。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

新たな問題が発生してしまい、やはりオプションを使用しなければならなくなってしまいました。

スキップとインデントはファイルを生成する時に盛り込む事になりました。

今回の質問はこれで閉じなくてはならなくなってしまいました。

サンプルをこちらで検証しましたら、希望の動作を確認する事が出来ました。

次回、この問題が発生したときに対応の手段の1つにしたいと思います。

ありがとうございました。

お礼日時:2004/01/19 17:15

> 印刷対象のテキストには、印刷時のイメージの状態で保存されています。


> (1ページの行数をコントロールし改ページコードも含まれています。)

% lpr テキストファイル
で印刷できるってことですか?
(対象テキストがpsファイルか何かになっている?)

それともフツーのテキストファイルだけど
^Lで強制的に改ページするようになっているんでしょうか?

前者の場合にはどうしたらいいかわかりません。

後者の場合でしたら、No.1の方法
% perl -ne 'print " "x4, $_ if $. > 2' ファイル
で標準出力に所望の結果(先頭3行スキップ・4文字インデント)が
出力されると思います。
対象ファイルに変更が加えられることはありません。

この回答への補足

度々ありがとうございます。

仕様の制限でPerlは使えません。

ちなみに印刷対象のテキストは後者の
>>^Lで強制的に改ページするようになっている
です。

lpコマンド、lprコマンドでも印刷できることは確認できましたが、行のスキップと
左端のインデントのオプション指定がわかりません。

よろしくお願いいたします。

補足日時:2004/01/16 16:08
    • good
    • 0

# perl -ne 'print " ", $_ if $. > 2' ファイル | jtops | lpr



でどうでしょう。
上の例では先頭の3行をスキップします。
2行にしたければ $. > 2 を $. > 1 にすればOKです。

この回答への補足

回答ありがとうございます。

質問に際する情報が不足していました。失礼いたしました。

Cシェルからのコマンド実行(lp,lprまたは他のコマンド)で印刷を行うのが目的です。

印刷対象のテキストには、印刷時のイメージの状態で保存されています。
(1ページの行数をコントロールし改ページコードも含まれています。)

印刷イメージを編集する事は最終手段としたいのでよろしくお願いいたします。

補足日時:2004/01/16 08:57
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!