締切済み 端末画面への出力とファイルへの書き込みを同時に実行する方法 2009/06/10 20:25 シェルスクリプト(主にBシェル)を勉強している初心者です。 コマンドを入力するとその出力結果は端末画面へ表示されますが、同時にファイルへの書き込む方法はあるでしょうか? みんなの回答 (3) 専門家の回答 みんなの回答 notnot ベストアンサー率47% (4903/10364) 2009/06/10 22:21 回答No.3 オーソドックスには、tee コマンド ls | tee ls.output とか。操作の記録をとりたいのなら、#2の方がお書きのscriptコマンドですね。 質問者 お礼 2009/06/10 22:44 恥ずかしながらteeコマンドは知りませんでした。参考になりました。ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 dyna_1550 ベストアンサー率34% (122/353) 2009/06/10 22:09 回答No.2 script コマンドを使うと、操作ログが取れます。 script /var/tmp/test1.log <- 操作内容や出力された内容が全て記録される。 終了は、 exit exitしないで終わると、バッファにたまった分がログに記録されないので注意。 質問者 お礼 2009/06/10 22:42 操作中における一部のコマンド結果を画面表示&ファイル書込みと考えていました。 回答ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 noname#89375 2009/06/10 20:53 回答No.1 > 同時にファイルへの書き込む方法はあるでしょうか? 「同時に」という解釈に困りますが、 一連の処理で(同時ではないです)書き込めば同じことではありませんか? たとえば、 # cat /etc/fstab > temp.txt | cat /etc/fstab 質問者 お礼 2009/06/10 22:38 早速の回答ありがとうございます。 > # cat /etc/fstab > temp.txt | cat /etc/fstab 確かに画面表示とファイルへの書き込みが出来ますね。ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターOS(技術者向け)Linux系OS 関連するQ&A シェルスクリプトで出力と処理の同時実行 シェルスクリプトで出力コマンドを実行し、キーワードで 抽出してその行数で分岐させようと考えています。 (出力コマンドはミドルウェアのコマンドでアプリケーションの 状態を表示するコマンドです) 出力コマンドの結果を出力させたいのですが下記のような 流れで行おうとしています。 いちいちファイルに保存せずに出力と、行数の変数への格納を 一度でできる方法はないでしょうか。 出力コマンド | grep [キーワード] | tee tmp/file hensuu=wc -l tmp/file case $hensuu in ・・・ よろしくお願いします。 標準出力とリダイレクトを同時に実行 標準出力の結果をファイルに保存するにはリダイレクトを使うと思いますが、同時に標準出力にも表示したいです。 同時に、リダイレクトの「>>」のように、追記していくようにしたいです。 そのような場合、 http://blog.goo.ne.jp/minimal_room/e/26b4d965cd67ac5abfc4ca024e69501f によれば、teeコマンドを使うと良いそうなのですが、 ./a.out | tee log.txt のようにすると、標準出力されず、上手くいきませんでした。 どのようなコマンドを打ったら良いか教えて下さい。 端末エミュレータでの出力について Linuxでコマンドを入力すると、出力が端末エミュレータで表示しきれないときがあるのですが、出力できる行数を増やすコマンドがあったら教えてください。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム killコマンド実行時のメッセージを出力させないためには? あるシェルスクリプトを実行させているところに、killコマンドを送り込むと、コンソールに「終了しました」と表示されてしまうのですが、これを表示させないようにすることはできますか??? kill 100 > 2>&1 > aaa.txtなどとしてもファイルに書き込まれないので、標準出力でも標準エラー出力でもないのでしょうか? コマンド実行結果のファイル出力 systeminfo echo list volume | diskpart のコマンドを実行結果をテキストファイルに出力したいのですが、 echo list volume | diskpart > "c:\status.txt" systeminfo >> "c:\status.txt" としてバッチで実行しても、何も出力されていないません。 コマンドを画面で入力すると、画面に表示されます。 どうしたらよいか教えてください。 コマンドの出力結果をn行おきに出力する方法 コマンドの出力結果をn行おきに出力する、出来るだけシンプルな方法を知りたいです。 例えば、あるファイルの中身をgrepで絞込み、かつそれを5行ごとに出力させる等。 シェルの種類は問いません。 宜しくお願い致します。 シェルスクリプトで選択してコマンド実行結果表示する Linuxのシェルスクリプトで、簡易メニュー画面を表示して、番号を入力して、コマンド実行結果を表示すしたいです。 →その後、ファイルに書き込むようにする。 表示が終わったら、再度簡易メニュー画面を表示して、別の番号を入力して再度コマンド実行結果を表示したいです。 (例:1を入力すると、ファイル容量のコマンド結果が表示、2を入力すると、ユーザーの名前コマンド結果を表示する。10を入力すると、終了) シェル(Unix) ファイル更新を監視する方法がわからなくて困っています。 ファイルが更新されているかシェルで監視したいのですが、どのようなシェルになるのでしょうか? たとえば、 Aファイルにはフルパスで記述している複数のファイルが記述してあり、その個々のファイルのファイルサイズやタイムスタンプを採取し、 Bファイルに出力させます。 再度、Aファイルを読み込みlsコマンド等の出力結果と、Bファイルの出力結果のファイルサイズやタイムスタンプを見比べて、相違があると メッセージを出力させます。 このような動作のシェルはどのように作るのでしょうか。 画面のテキストをファイル出力 画面に表示したテキストをファイルに出力する方法はありませんか。 fprintfを画面出力と同時に実行すればよいのですが、 fprintfをプログラムに追加していくとフローチャートを 書き直さなければならないので何か方法があれば教えてください。 お願いします。 環境 windows XP borland c++ 5.5 GPG暗号化をシェルスクリプトで実行する方法 いつもお世話になっております。 パスフレーズの入力しGPGコマンドでファイルの暗号化を自動化するシェルスクリプトの書き方について教えてもらえませんでしょうか。 あるファイルをgpgコマンドを使いパスフレーズを入力し暗号化したいのですが、 > gpg -c ORG_FILE パスフレーズ入力 パスフレーズ再入力 このパスフレーズを指定して実行する作業を自動化したいと思っています。 このGPG暗号化パスフレーズの入力、再入力をシェルスクリプトで実行するにはどのようなコマンドの書き方をすればよいかご教授願えませんでしょうか。 どうぞ宜しくお願い致します。 vbsのファイルが端末によってうまく起動しない事があります(エラー出力 vbsのファイルが端末によってうまく起動しない事があります(エラー出力はなく、結果状況が違う)。最新のscriptを入れても無理でした。他に端末に依存する情報(osのバージョンなど)がありましたら教えてください。 teeコマンドを使わずにUNIXで標準出力とエラー出力を、ファイルと標準出力の両方に出すには? UNIX系のBシェルで、 コマンドを実行して、 その標準出力とエラー出力をログファイルに出力し、 かつ、同じものを標準出力にも出力したいのです。 また、その後でコマンドの戻り値$?をエラーチェックしたいです。 このため、パイプでteeコマンドを使用すると戻り値が上書きされてしまいます。 いったん一時ファイルに出力するしかないのでしょうか? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム awkでの出力項目の追加方法について はじめまして。 急遽UNIXサーバをメンテすることになったUNIX素人です。時間に迫られており勉強する時間も今はとれず、皆様のお知恵をお借りしたく質問させていただきます。 現在、コマンド出力結果などの各行の先頭に、日時分秒を追加してテキストファイル出力するシェルスクリプトの作成をしています。 awk を使用して実現したいと思っていますが、具体的な方法についてアドバイスをいただけたらと思っています。 なお、コマンド出力結果をawkへ引き渡す方法は、スクリプト内で直接渡しても、一旦ファイル出力したものを読み込む形のどちらでもよいと思っています。 例 ・ps の出力結果 PID PPID PGID WINPID TTY UID STIME COMMAND 1072 1 1072 1072 con 1005 10:41:29 /usr/bin/bash 1052 1072 1052 544 con 1005 10:50:14 /usr/bin/ps ・日時分秒 を追加した結果 DATE PID PPID PGID WINPID TTY UID STIME COMMAND 200705111735 1072 1 1072 1072 con 1005 10:41:29 /usr/bin/bash 200705111735 1052 1072 1052 544 con 1005 10:50:14 /usr/bin/ps 大変初歩的な質問で申しわけありませんが、なにどぞご教授お願いします。 linux勉強中の質問です。 1)以下の処理には24時間かかる見込みである。 シェル:test1.sh (Bシェルスクリプト) Solarisで端末を切っても大丈夫な形で実行する必要 がある。コマンドの書式を示せ。 また実行結果はエラー出力も含めてファイルへリダイレクトするようにせよ。 2)Linuxで上記の件に回答せよ 3)IRIXで上記の件に回答せよ 4)Bシェルで以下のプログラムを作れ。 カレントディレクトリにfile1~file1000を作成する。 以上、宜しくお願い致します。 バックグランド実行における漢字出力不可の対策方法を教えてください。 バックグランド実行における漢字出力不可の対策方法を教えてください。 Linux(Ecolinux9.10)で夜間自動バックアップシステムを稼動させていますが、バックアップが正常に処理されたかどうかを毎朝自分のWindowsマシン上で確認するために、記録されたファイル名を(インターネット経由で)メールにて送信しています。しかし、毎回受け取っているファイル名は漢字の部分がすべて"¥"が先頭に付いたエンコード文字となって受け取っています。 一連の処理はシェルとして、すべてスケジュール起動しています。 原因を調べたところ、作成されたファイルの中身を見るコマンドtarにてリダイレクションを使って出力したファイルが必ず化けてしまいます。コマンドラインでは、root実行すると発生するようです。また、スケジュール実行では必ず発生します。 そこで質問ですが、root環境でもしっかり漢字のまま、ファイルに出力するようにシェルを工夫する方法、または受け取ったメールを漢字にデコードされた状態になる方法を教えていただけないでしょうか?よろしくお願いします。 なお、ネットで調べた結果、シェルに"export=~"を入れて、シェルを日本語環境で動作させているつもりです。想像では、日本語ターミナル上で動作させることで問題が解決かなと思っていますが、肝心の日本語ターミナルが不明です。 MacでPython スクリプトファイルの実行 自分はMacユーザです。 プログラミングに興味があったので Python2.6のインストールと入門書の購入をしました。 スクリプトファイルの実行をしたいのですが、やり方がわかりません。 Macにあるテキストエディタで print "hello" と入力して、test.pyという名前でデスクトップに保存しました。 購入した本には「LinuxやMac OS Xであれば、シェルからコマンドを入力します。」と記されています。 そもそもシェルの意味が分かりません。。。 「python test.py」と入力とも書いてあるのですが、どこに書くのでしょうか。。 ネットで簡単に調べてみたのですが、いまいち分かりません。 初心者なので、分かりやすく回答して頂けるとありがたいです。 どうか、よろしくお願いします。 印刷と同時にファイル出力 プリンターに印刷すると同時にファイルとして出力する方法はあるのでしょうか? ファイルの出力は、印刷するファイルのコピーが理想です。 Linuxで標準出力したファイルの文字コードついて Linuxで2つのディレクトリの内容をtreeコマンドでそれぞれファイルに出力して、 その2つのファイルをdiffで比較して、その結果をファイルに出力するシェルを作成しました。 比較対象のディレクトリの内部には日本語でファイル名やディレクトリ名を付けているものもあります。 このシェルを手動で実行してファイルに出力された内容を確認すると、 日本語であるべきところは日本語で出力されています。 nkfコマンドでファイルの文字コードを確認すると「UTF8」となっています。 しかし、cronにてこのシェルを実行してファイルに出力された内容を確認すると 何故か日本語の部分が化けて(ASCIIのようです)しまいます。 nkfコマンドでファイルの文字コードを確認すると「ASCII」となっていました。 cronで実行した場合にも出力するファイルの文字コードを「UTF8」にしたいのですが どいうすればよいでしょうか? どなたかご教授願います。 よろしくお願いします。 shell の time コマンドの結果をファイルに出力する方法(AIX) AIX4.3 の環境でプログラムのパフォーマンスを確認しようと思っています。「time XXXXX 2> perform.log」で標準エラー出力をファイルに書き出そうとしているのですがうまくいきません。time コマンドのパフォーマンス結果は標準エラー出力に書き出されると思うのですが、リダイレクトしたファイルは何も書かれていません。画面にtime コマンドの結果が表示されるだけです。time コマンドではなく通常のエラーは標準エラー出力からファイルに書き出すことはできます。原因がわからずこまっています。よろしくお願いします。 処理結果(標準出力と標準エラー出力)をファイルと画面の両方に出力する方 処理結果(標準出力と標準エラー出力)をファイルと画面の両方に出力する方法はありますか? 当方 処理結果(標準出力と標準エラー出力)をファイルに出力する際に iroirona_command > log.log 1>&2 ・・・ファイルに出力されるが画面には表示されない。 iroirona_command ・・・画面には表示されるがファイルには出力されない。 と書いて標準出力と標準エラー出力を出力させているのですが、 ファイルと画面の2つの出力先に出力したいと考えています。 可能なのでしょうか? 環境 Windows XP SP3 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター OS(技術者向け) Windows系OSLinux系OSBSD系OSSolaris系OSiOS(技術者向け)Android OS(技術者向け)その他(OS) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
恥ずかしながらteeコマンドは知りませんでした。参考になりました。ありがとうございます。