1 名前:デフォルトの名無しさん [2005/04/04(月) 03:43:03 ] シェルスクリプトに関する質問・回答や議論等を行う相談室スレッド。
554 名前:デフォルトの名無しさん [2007/04/07(土) 22:25:30 ] >>553 すいません、ありがとうございます。 何もわかってないんで^^; ずばり、そのとおりで、取得したいのはルータについてるグローバルIPです。。
555 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 22:42:16 ] >>554 ダイアルアップルータやモデムにはtelnetサーバが内蔵されていることがある。 叩くコマンドが分かれば、expectを使って取得できるかもしれない。 httpサーバを内蔵していることもあるが、こっちはずばりIPアドレスを確認する ページを持ってるかもね。
556 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 23:00:35 ] >>554 誰もおまいのルータの仕様を知っているやつはいないからな・・・ うちのFLASHWAVE 2040 M1ならID:PASS@ ルータのIP/doKeeping.htmlを wgetで取得してvar sIpAddress="*.*.*.*";の場所を取得すればわかる。
557 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 00:37:43 ] 何も考えずにメール出せば、大抵はReceived:にIPアドレスが自動的に書かれる。 書かれないならば、書いてくれるメールサーバを提供しているISPに乗り換える。
558 名前:537 mailto:sage [2007/04/11(水) 10:24:46 ] ソフトバンクさんからメールの返事が届きました。 正誤表も更新したみたいです。
559 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 12:36:15 ] alias定義で改行の前に入れる\にはどのような作用があるのでしょうか? csh でいろいろと試してみたところ、下のようにwhile文などが使えるようになりますが、 一方で、引数を扱ったりwhile文のネストをしたりすると正常に動作しなくなってしまいます。 alias loop '\ set count = 1\ while ( $count <= 5 )\ echo hoge\ @ count++\ end\ '
560 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 12:45:23 ] 未だだね。
561 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 12:46:29 ] あーいけね、>560は>558の話ね。 >>559 行末のバックスラッシュは改行文字をエスケープする。
562 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 13:19:26 ] >>561 「改行文字をエスケープする」の意味を具体的に教えて欲しいのです。 >>559 のコードで\+改行を空白に置き換えると動かなくなります。 妙な副作用がなぜ出るのかも謎です。
563 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 22:34:26 ] >>552 診断君とかにアクセスしてIP抜いてもらって それをパースするのはだめなんか?
564 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 22:36:33 ] ワンクリ詐欺サイトにアクセスすればIPアドレス教えてくれそうだな。
565 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:29:53 ] >>563 頻度にもよるけどあんま他人様のとこに頼るのもいかんと思う。 自前で取れるんならそうした方が優しいし確実。一応 ttp://info.ddo.jp/remote_addr.php とか使うとワンライナーでやれるけど。
566 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:59:30 ] >>562 シェルスクリプトにおける改行の意味を調べてみると良いよ。 alias loop 'set count = 1;while ( $count <= 5 );echo hoge;@ count++;end;'
567 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 05:02:58 ] >>566 while?
568 名前:デフォルトの名無しさん [2007/04/13(金) 21:22:17 ] 質問させてください。 以下のように、test-serverへ接続し、 date;hostname;whoamiを実行するスクリプトを書いてます。 date;hostname;whoamiの結果をリダイレクトし、 スクリプト本体があるサーバに保存したいのですが、 その場合、どう記述すれば良いでしょうか。 #/bin/bash HOST=test-server UNAME=root PASSWD=*** expect -c " set timeout 20 spawn telnet $HOST expect login:\ ; send \"$UNAME\r\" expect sword:\ ; send \"$PASSWD\r\" expect \"$\" ; send \"ls\r\" expect \"$\" ; send \"date;hostname;whoami\r\" expect \"$\" ; send \"exit\r\"
569 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 11:40:37 ] そのスクリプトの出力をリダイレクトすればいいのではなくて?
570 名前:568 mailto:sage [2007/04/17(火) 21:48:16 ] その方法が分からないのです。expect内部でリダイレクトすると 接続先にファイルが出来てしまうんじゃ無いでしょうか
571 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 23:45:47 ] >>570 にほんごよめますか?
572 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 00:08:52 ] ラッパー側のスクリプトの出力をリダイレクトしようとしても、 expectの中で起動したプロセスの出力はexpectが全部食っちゃうん じゃないの?
573 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 18:39:33 ] あるプログラムをバックグラウンド実行して、 そのプログラムが一定時間後に終了していなかったら終了させる、みたいなことはできますか? こんなイメージです。 #!/bin/sh /bin/hoge & # 数十分かかる。途中で固まるかもしれない。 sleep 3600 # 念のため一時間待ってみる [ hoge が終了していなかったら hogeをkillする。終了していたら無視 ] exit
574 名前:デフォルトの名無しさん mailto:age [2007/04/21(土) 18:41:17 ] あげ
575 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 18:50:35 ] >>573 こういう事? #!/bin/sh -x DURATION=3600 hoge & PID=$! echo ${PID} sleep ${DURATION} kill ${PID} exit
576 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 18:51:49 ] >>573 pid控えておいて、atコマンドで終了スクリプトを仕込むとか。
577 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 19:30:31 ] 一時間の間にpidが再利用されない保証があるなら。
578 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 19:44:35 ] kill する前に親プロセスの PID を確認すれば。
579 名前:デフォルトの名無しさん [2007/04/21(土) 20:11:19 ] データを 1バイトだけ 読み込むコマンドってなんだっけ?
580 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 22:21:18 ] >>579 head -c 1 ?
581 名前:573 mailto:age [2007/04/21(土) 22:39:07 ] >>575 こういうことです!ありがとうございます。 >>576 atd動いていないッス。。。 >>577 >>578 pidが再利用されない補償はもちろん無いです。 ググっていますがPPIDを確認をするコマンドが見あたらないorz $!や$$でPIDが取れるようなのでpsコマンドの結果から何とかしてみます。
582 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:22:43 ] waitか何かで子プロセスの終了待てなかったっけ?
583 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:14:45 ] >>573 pid=$! count=0 while [ $count -lt 60 ]; do sleep 60 kill -0 $pid || break count=`expr $count + 1` done [ $count -lt 60 ] || kill $pid
584 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:15:16 ] 待つよ。
585 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:16:01 ] むぅ、30秒差で… >>582 waitで待つよ。
586 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:19:01 ] >>583 kill -0 $pid ってどういう意味?
587 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 20:32:55 ] kill -0 $pid 2>/dev/null || break の方がベターだな。 >>586 man 2 kill The kill() system call sends the signal given by sig to pid, a process or a group of processes. The sig argument may be one of the signals speci- fied in sigaction(2) or it may be 0, in which case error checking is per- formed but no signal is actually sent. This can be used to check the validity of pid. プロセスが存在してそのプロセスにシグナルを送る権限があれば正常終了。 それ以外はエラー。つまり、プロセスの生存確認に使用できる。
588 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 20:58:56 ] >>587 なるほど。 日本語man読んでも意味がわかんなかったんだ ありがとう
589 名前:デフォルトの名無しさん [2007/04/27(金) 13:30:22 ] シェルブリッド
590 名前:デフォルトの名無しさん [2007/04/28(土) 16:07:15 ] ♪ア・ソ〜レ ア・チョン! ア・チョン! ア・チョン! チョン! チョン! バカ!
591 名前:デフォルトの名無しさん [2007/05/04(金) 00:27:06 ] a.txt 2 4 23 87 483 3 b.txt 89 34 111 8 3 97 とある場合 program a.txt b.txt と打てば 以下のようにに表示されるシェルスクリプトってできませぬか? 2+89=91 4+34=38 23+111=134 87+8=95 483+3=486 3+97=100
592 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:35:51 ] >>591 スクリプトにするまでもないが、 #!/bin/sh paste a.txt b.txt | awk '{ print $1 "+" $2 "=" $1 + $2}'
593 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:36:40 ] あああ、paste $* | awk 以下略
594 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 22:00:14 ] ああpasteって知らなんだサンキュー
595 名前:デフォルトの名無しさん [2007/05/10(木) 19:24:42 ] 自演さらしあげ
596 名前:デフォルトの名無しさん [2007/06/18(月) 22:07:54 ] 既存ファイルの一部のみ書き換える事ってできますか? (ファイル名変えずに) NHK,1 NTV,4 TBS,6 FTV,8 ANB,10 というテキストがあったとして sed 's/N/X/g' という操作をして XHK,1 XTV,4 TBS,6 FTV,8 AXB,10 としたいです。
597 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 22:23:39 ] 別のファイルに出力した後で、mvかcp
598 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 22:34:19 ] -i オプションあるならそれ使え
599 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 06:36:31 ] (mv file file.bak&& sed -e 's/N/X/g' >file) <file
600 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 06:47:14 ] sed -i 's/N/X/g' file
601 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 10:04:16 ] sed -i ってどんな機能??
602 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 10:23:41 ] 手元のsedにはないオプションだ。
603 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 10:47:04 ] なら perl 使っとけ。 perl -i -pe 's/N/X/g' file
604 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:36:49 ] edでいいんじゃね?
605 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:30:13 ] ファイルのある文字列を含む行と行の間を取得するにはどうしたらいいのでしょうか? 例えば「abc」「def」を含む行の間、2・3・4行目を取得をしたいです。 grepでやろうとしたのですが、どうしてもうまくいきません。。 abcaa aaaaa bbbbb ccccc defbb
606 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:36:36 ] >>605 sed -n '/abc/,/def/p' < text | sed '1d;$d' なんか冗長なのと、該当箇所が複数あると駄目だな。
607 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:37:59 ] パイプの後段を sed '/abc/d;/def/d' にすれば該当箇所が複数あってもOKかも。
608 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:47:05 ] >>605 sed -n '1,/abc/b; /def/q; p'
609 名前:605 mailto:sage [2007/06/27(水) 01:12:46 ] レスありがとうございます。 無理やりawkで冗長なものを作ろうとしてました。 もっと修行して出直します。
610 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:37:53 ] >>609 別にawkでいいんじゃね。ラクだし ↓複数箇所でも大丈夫 awk '/aaa/{f=1;next} /bbb/{f=0} f{print}'
611 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 23:03:01 ] つーかやり無理一行で作らんでも、perlとかで普通に作ればいいんじゃね。 冗長だろうがなんだろうが。
612 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:04:28 ] awkでがんばって一行で作ったのの速度と perlでシコシコださく書いたのの速度は どっちが速いですかね
613 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:11:24 ] 別に全然頑張ってない
614 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:19:38 ] awkで一行で書けるものがperlで一行で書けない理由は無い。
615 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 15:09:13 ] 一行に納める必要はないです。 バックリファレンスなどの特殊な機能を使わなければ 遅延評価DFAで動くawkは行数が増えても遅くなりません。 逆に頑張って一行で書いてもあんまり高速化しません。
616 名前:デフォルトの名無しさん [2007/07/04(水) 23:12:58 ] 九九の表を作るスクリプトなんですけど cshで@を使わないで書き直したらどうなりますか? #!/bin/csh -f echo " | 1 2 3 4 5 6 7 8 9" echo "--|------------------" foreach i (1 2 3 4 5 6 7 8 9) eaco -n " $i|" foreach j (1 2 3 4 5 6 7 8 9) @ seki = $i @ seki *= $j printf "%3d" $seki end echo "" end echo "--|------------------"
617 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:21:45 ] @を使わないならBourne Shellでやるようにexprを使えば?
618 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:25:05 ] >>617 Borne shellで書き換えは出来るんですけど 課題としてcshで@を使わないで書き直すように指示されてるんです
619 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:35:33 ] ばか?
620 名前:デフォルトの名無しさん [2007/07/05(木) 00:28:33 ] しつもん スイッチのポートとその先のPCのMACをSNMPで対応付けたいのですが、 #!/bin/bash while [MACアドレスがある限り];do snmpwalk -c コミュ IP .1.3.6.1.2.1.17.4.3.1.1 >aa snmpwalk -c コミュ IP .1.3.6.1.2.1.17.4.3.1.2 >bb snmpwalk -c コミュ IP .1.3.6.1.2.1.17.1.4.1.2 >cc snmpwalk -c コミュ IP .1.3.6.1.2.1.31.1.1.1.1 >dd grep MAC aa > mib grep mibの右側 bb >bridge grep bridgeの右側 cc >ifindex grep ifindexの右側 dd >port paste MAC,port >output.txt done <mac.txt みたいなたらい回ししか出来ないんですか? 関係ないけどどうして演算結果を変数に入れるのがあんなに変な形式なんだろう?
621 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 00:40:18 ] >>618 #!/bin/csh -f echo ' @を使わないことに何の意味があるの?' echo 'あんた馬鹿じゃねーの?'
622 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 01:02:45 ] >>618 Bourne Shellでやる「ように」と書いたのが見えませんでしたか? ・cshでも``記法は使えるでしょ? ・exprはBourne Shellの内部コマンドじゃないでしょ?
623 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 01:37:06 ] >>620 コマンド置換を山ほどネストすれば一時ファイルはもっと減るんじゃね? つかこの程度のことにbash使うな で、変な形式って?
624 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:53:44 ] 文字列+数値(たまに数値の無い行がある)の並んだファイルを置換したいです ○○○1 ××××200 △△ □□66 とか並んでるのを、 ○○○2 ××××201 △△ □□67 みたいに。 sedで左 >file1 sedで右 | sed -e "s/\([0-9][0-9]*\)/&+1/" | bc >file2 paste file1 file2 > file3 で解決かと思ったら、△△の行がbcで勝手に詰められて結果がずれてしまう… 私の頭ではこれ以上思いつきませんでした。助けて
625 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:56:27 ] awkでいいじゃん。
626 名前:赤帽勉強中 mailto:sage [2007/08/02(木) 21:45:16 ] ・lftpを使用してファイルアップロードと削除を行う(mirrorは使わない) ・アップロードと削除の対象ファイルはリストから読み込ませる って機能のスクリプトを作ろうとしているんですけど、 ファイル名をリストから読み込ませてのアップロードと削除がどうやれば良いのか。。。 どなたかlftpに詳しい方、アドバイスを下さいませ。(-∧-;) ナムナム
627 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 22:19:08 ] lftp使ったことないのでmanを見てみたが、manの範囲でできる。 実行するコマンドをテキストファイルに羅列して lftp -f そのファイル 標準出力からコマンドを食わせることができればきれいなんだけどな。 cat <<EOF > commands user hoge pass cd hoge EOF sed 's!^!put !' < put_file_names >> commands sed 's!^!del !' < del_file_names >> commands lftp -f commands とかそんな感じじゃね?
628 名前:赤帽勉強中 mailto:sage [2007/08/02(木) 23:10:38 ] >>627 レスありがとうございます♪おかげで何とかなりそうですよ。 実はmanを見たりググったりしていたんですが何じゃこりゃ?って感じで理解できていませんでした(汗 まだまだ全然勉強が足りませんですね。。。ヾ(´▽`;)ゝアセアセ
629 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 00:52:33 ] ふつうrsync
630 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 12:59:17 ] ついでなので、ワタシの使っているコマンドライン公開 lftp -u USER,PASS HOST -e 'set ftp:passive-mode 0;set ftp:ssl-allow 0;mirror -Rev' 2>&1 >>629 ftp しか使えない環境でも、rsync って使えますか?
631 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:37:12 ] >>630 使えません
632 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 14:49:39 ] sshオーバーで耐えろ
633 名前:デフォルトの名無しさん [2007/08/13(月) 00:26:07 ] シェルスクリプトでURLのリンク先を開くにはどうしたらいいでしょうか?
634 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 01:06:27 ] >>633 汎用的なのは telnet + expect SSL や TLS を使用しているなら openssl 接続先が http なら wget とか curl とか ftp なら ftp コマンド
635 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 04:04:17 ] UNIXパワーツールの92Pに PS1='`date "+%D %T"` $PWD $ ' というカスタマイズが紹介されていたんですが +%D %Tをダブルクォートで囲むのは何故なんでしょうか?
636 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:04:47 ] >>635 そのPS1への代入の段階で展開させず、PS1に%Dを引き渡すため。 勿論それは、プロンプト表示の段階で展開されることを期待している。
637 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 16:05:22 ] >>636 シングルクォートで囲んでいるので、ダブルクォートで囲まなくても 代入の時点ではdateコマンドは実行されないのではないでしょうか?
638 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 16:19:05 ] >>637 date +%D %T と実行してみろ。話はそれからだ。 >>636 それでは"が必要な理由の説明になっていない。
639 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 22:55:46 ] >>635 論点とは違うが、 PS1='\d \t \w \$ ' これと大差ない気がする。
640 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 08:41:29 ] >>639 それ移植性ある?(PS1に移植性も何もないが、移植性のある.profileとか 一時期凝ってたんで)
641 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 01:16:48 ] >>640 移植性というか、依存するのはシェルのバージョンだから、 ttp://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html#lbBZ bash なら上の「プロンプト」の項に載っている奴は 少なくとも bash 2.05b 以降で使えるはず。 ついでに bash 3.2.17 の info を確認したら、二つ新しいのがあった。 これには移植性が無いって事だな。w `\D{FORMAT}' The FORMAT is passed to `strftime'(3) and the result is inserted into the prompt string; an empty FORMAT results in a locale-specific time representation. The braces are required. `\A' The time, in 24-hour HH:MM format.
642 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 01:59:47 ] echo $ とすると$が出力されるのに echo $"" や echo $'' とするとなにも出力されなくなるのはどうしてなんでしょうか?
643 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 02:15:52 ] >>642 後者は$が変数参照の一部と見做されるから。 抑止するには$を''で囲むか\でエスケープすればいい。
644 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 02:31:25 ] >>643 >>後者は$が変数参照の一部と見做されるから。 変数名が空の文字列の変数を参照しようとするってことなんでしょうか?
645 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 11:25:41 ] そんなようなもんじゃない? その割には、そんな変数は定義できないと思ったけど。
646 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 15:26:44 ] bash の話だと、 $"" と $'' は特殊な quoting の構文になってる。 zsh にも $'' はあるみたいだね。
647 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 19:47:15 ] man hogeの結果に対してgrepをしたい場合、どのように書けばいいのでしょうか?
648 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 21:41:37 ] うちのMacではそのまま man man | grep -i optionとかできるんだけど、 これって特殊?
649 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 21:51:12 ] >>647 PAGERをcatにしたらどう?
650 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 22:04:53 ] >>648 いやそんなことはないと思う linuxとかでもそうでしょ んでも、grep前にcol -bとかはさんだほうがモアベターだと思う
651 名前:647 mailto:sage [2007/08/28(火) 22:18:05 ] 今の環境はUbuntuなんですが デフォルトの状態でman hoge | grep "文字" をやるとエラーか文字化けか再フォーマットしてます〜というメッセージが出て止まってしまう みたいです。 言われたとおりPAGERをcatにしてみたら普通の文字はgrepできるようになったんですが、 man ls | grep -i のように-iの行を見ようとすると man: コマンドはステータス 13 で終了しました: /usr/bin/zsoelim /tmp/zman9mAoS0 | iconv -c -f EUC-JP -t UTF-8 | /usr/bin/tbl | /usr/bin/nroff -mandoc -Tutf8 | /usr/bin/col -b -p -x | /usr/bin/pager -s このようなメッセージが出て終了してしまいます。
652 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 22:47:15 ] nroff -man manページのtroffソース | grep ... はどう?
653 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 23:51:44 ] grep -e -i
654 名前:647 mailto:sage [2007/08/29(水) 09:18:30 ] >>652 実行してみると↓のようなエラーが出てきました。 普通にmanを実行するときちんと表示されるのに、それをリダイレクトしたりすると 文字化けするあたり、どこかがおかしいのだと思います。 653さんのようにやってみたところ日本語の部分が文字化けしてることを 除けばmanの情報をgrepできるようになりました。