>> 4945 ご説明ありがとうございます。 Windows XPの別端末で書き込みをしたら 「エラー : 内部エラーが起こりました。」 の画面が表示されました。 何かあるのでしょうか。 |
こんにちは.linuxを使い始めたものです. パイプに関する質問です.環境はVine Linux のbashです. あるファイル名(ここではtestfile)のものを検索して, さらにその中身に"test"という文字列を含むかどうかを 知りたいと思っています. 対象のファイルがひとつとは限りません.例えば, ........... ../Data1/testfile ⇒(中身)This is test file. ........... ../Data2/testfile ⇒ (中身) This is hoge hoge. といった感じで同じ名前のファイルが別のディレクトリにあります. cat,find, grepを組み合わせれば出来そうな気はしているのですが, findしてリスト表示されたファイル名を引数としてcatコマンドに 渡すことができません. 自分なりにいろいろ検索しましたが,よくわかりませんでした.. よろしくご教授ください. |
>>4947 素人 親ディレクトリ以下の testfile というファイル名のファイル中に test という文字列があるものをリストアップ、であれば % find ../ -name testfile | xargs grep -l test でしょうか。それを cat するなら % find ../ -name testfile | xargs grep -l test | xargs cat ですかね。 |
>>4948 68user できました!答えはxargsでしたか. 勉強不足で恐縮です.ありがとうございました. |
RSA1のプログラムを実行するにあったってエラーが多くでます。これのヘッダファイルはどこにあるのでしょうか。 |
>>4950 佐藤丈師 OpenSSL に同梱されていますので、OpenSSL をインストール済みであれば /usr/include/openssl や /usr/local/openssl/include などにあるはずです。 コンパイル時に -I /usr/include/openssl などのオプションを付加してください。 |
初めて投稿します。 全くの初心者ですが、次のことをお尋ねします。 Debian4.0ですが、デスクトップにアイコンを作成し、クリックすると プログラムを起動するようにしたいのですがどのようにすればいいの でしょうか。 #su - abc ’abcでログインし、「sh /usr/lib/scripts/claim/ORC_CLAIM_SERVER.sh 5001 /var/tmp」 ktermに記述などお尋ねします。 |
>>4952 kawasaki やり方はインストールしたデスクトップ環境 (GNOME とか KDE とか) によると思います。 が、お使いのデスクトップ環境をお教えいただいたとしても、ここ数年は UNIX 系 デスクトップ環境をいじっていないので、わたしはさっぱりわかりません。 |
初めまして。 ちょっと気になったので言わせて下さい。 UNIXの部屋 コマンド検索: Machでの説明で、 発音は、普通なら [まっは] が正しいと思うが、アメリカ人は "ch" の発音ができないらしくて [まーく] [まっく] といっている (発音できないような名前を付けるなと言いたい)。 とありますが、発音できないんじゃなくて、そういうスペルだと、 英語的には、マークって呼ぶだけです。hの2つ前は、aつまりエイって発音し、 cは、基本的には、ックって発音になり、 何も考えずにつなげて読むと、マークって読みます。 で、でもなんで、マッハが正しいかと言うと、 これは、ヨーロッパ系の言語の多くが、 machって書いてまっはって読むからです。 発音できないわけじゃないですよ^^; |
>>4954 uccこーひー ご指摘ありがとうございます。が、正直なところを申しますと、学がないので 真偽のほどが判断できません。よって、該当コンテンツより、 >>4954 uccこーひー の発言にリンクを張らせていただきますので、あとはお読みいただいた方に ご判断いただくことでご了承ください。 |
いつも便利に参照しています。 lsコマンドの紹介ページ(http://x68000.q-e-d.net/~68user/unix/pickup?ls)で 「man Solaris10 ls(1)」のリンク先が間違えているのに気がついたのでご連絡です。 正しくは、 「http://docs.sun.com/app/docs/doc/819-1210/ls-1?l=ja&a=view&q=ls」かな? |
>>4957 たけ > 「man Solaris10 ls(1)」のリンク先が間違えているのに気がついたのでご連絡です。 ありがとうございます。Sun のページはたまに URL が変わるんですよね…。 最新情報で更新しておきました。 NetBSD の manpage へのリンクも表示されなくなっていますが、そのうち直します。 |
SE募集の件で書き込みさせていただきました。 大変興味がありますので、一度詳細を教えていただけないでしょうか。 ご連絡をお待ちしています。 |
ありがとうございます。メールを送ります。 |
Perlで、前日のAM9時以降に作成されたファイルを 取得したいのですが、どのようにPerlを書けばよい のでしょうか。 Perlのシェルスクリプトを起動する前日のAM9以降 から、実行日までの間に作成されたファイルを取得 したいのです。 実行日の前日の9時というのは以下の方法で取得できる のですが、取得した日付とファイル作成日付を比較し、 対象か否かを判断して、必要なものだけを取得する 方法が分かりません。 どのよに書けばよいのでしょうか。 「実行日の前日の9時」は、 -------------------------------- #!/usr/local/bin/perl $tm = time - (24 * 60 * 60 * 1); ($sec, $min, $hour, $day, $mon, $year) = (localtime($tm))[0..5]; $now = sprintf("%04d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon+1,$day,$hour,$min,$sec); print $now, "\n"; -------------------------------- #!/usr/local/bin/perl use POSIX 'strftime'; $tm = time - (24 * 60 * 60 * 1); my $now = strftime "%Y/%m/%d %H:%M:%S", localtime($tm); print $now, "\n"; |
>> 4974 環境を書き忘れました。 環境は、 Solaris8 Perl v5.8.5 |
>>4974 べた >>4975 べた Solaris なら適当なファイルを作って、touch コマンドでタイムスタンプを 前日 08:59:59 にしておいて、find . -newer foo とするのが一番簡単かと 思います。 FreeBSD なら find -mtime -99h とか、Linux なら find -mmin -9999 とか できますが (99 や 9999 は計算して求める)、結局は -newer の方が簡単な 気がします。 モジュール使うなら File::Find http://perldoc.perl.org/File/Find.html File::Find::Rule http://search.cpan.org/~rclamp/File-Find-Rule-0.28/lib/File/Find/Rule.pm あたりかと思いますが、いずれも前日9時と比較する部分は手で書かないと いけないように見えますので、イマイチですね。 |
>>4976 68user ありがとうございます。 また、返事が遅くなって申し訳ありません。 > find . -newer foo ですか。 シェルで、findの結果を取得することも考えました。 > あたりかと思いますが、いずれも前日9時と比較する部分は手で書かないと > いけないように見えますので、イマイチですね。 Perlを使おうとしていたので、手で書かなくてはいけないと思っていました この部分の良い方法が実現できなくて。 環境上、教えて頂いたモジュールも入れることができません。 |
>>4977 べた find . -newer foo の方法を書いておきます。find を使わないなら、 昨日9時の日時 (20090323090000) を Time::Local で epoch time に 直しておき、stat() が返す最終更新時刻と比較すればよいでしょう。 ------ my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time()-60*60*24); my $timestamp = sprintf("%04d%02d%02d%02d%02d.%02d", $year+1900, $mon+1, $mday, 9, 0, 0); my $yeasterday_9am_file = "foo.txt"; system("touch -t $timestamp $yeasterday_9am_file"); open(IN, "find . -type f -newer $yeasterday_9am_file |"); while (<IN>){ chomp; print "$_\n"; } |
>> 4978 ありがとうございます。 教えていただいた方法ですと、前日9時のタイムスタンプの 取得をPerlでやればあとは、シェルスクリプトでもできます ね。 実のところ、findを使わない、Perlでの記述、遣り方を教えて ほしいのですが。 |
>>4978 68user > find を使わないなら、 > 昨日9時の日時 (20090323090000) を Time::Local で epoch time に > 直しておき、stat() が返す最終更新時刻と比較すればよいでしょう。 Time::Local で epoch time に直しての「epoch time」とは なんでしょうか。 |
linuxのCでグラフィックの勉強がしたくてX-Windowまで辿り着いたのはよかったんですが、 ここ↓のソースを実行させようとしても何故かエラーが出てしまいます。 http://x68000.q-e-d.net/~68user/xprogram/xlib-4.html 一応類似の記事がないかどうか調べて見ましたが、 No.8552が近いと思いましたが全然分かりませんでした。 ちゃんとusr/include/X11ファイルに Xlib.hとXutil.hはありますし、 コンパイルオプションも活用してみました…… Xlib.hとXutil.hの意味も分からなくて困窮中です…… コマンドラインは、gcc -o xlib-4-1 xlib-4-1.c -I /usr/include/X11 -L /usr/include/X11 エラーは以下の文です /tmp/cc2pF4g1.o: In function `main': xlib-4-1.c:(.text+0x9f): undefined reference to `XOpenDisplay' xlib-4-1.c:(.text+0x149): undefined reference to `XCreateSimpleWindow' xlib-4-1.c:(.text+0x198): undefined reference to `XSetStandardProperties' xlib-4-1.c:(.text+0x1c0): undefined reference to `XCreateGC' xlib-4-1.c:(.text+0x1e8): undefined reference to `XSetBackground' xlib-4-1.c:(.text+0x20a): undefined reference to `XSetForeground' xlib-4-1.c:(.text+0x232): undefined reference to `XCreateGC' xlib-4-1.c:(.text+0x25a): undefined reference to `XSetBackground' xlib-4-1.c:(.text+0x27c): undefined reference to `XSetForeground' xlib-4-1.c:(.text+0x294): undefined reference to `XMapRaised' xlib-4-1.c:(.text+0x2ec): undefined reference to `XFillArc' xlib-4-1.c:(.text+0x344): undefined reference to `XFillArc' xlib-4-1.c:(.text+0x352): undefined reference to `XFlush' collect2: ld はステータス 1 で終了しました |
>>4982 ちびヴァル オプション -lX11 が足りていません。まずは http://x68000.q-e-d.net/~68user/xprogram/xlib-1.html からどうぞ。 |
>>4980 べた > 「epoch time」とはなんでしょうか。 http://oku.edu.mie-u.ac.jp/~okumura/php/date.php UNIX で Epoch とは,協定世界時(UTC,いわゆるグリニッジ標準時 GMT) 1970 年元旦 0 時 0 分のことです。 UNIX の内部ではこの瞬間からの秒数で 時刻を表しています。 のことです。 |
>>4983 68user 一通り実行して終了させると次の文章が出るんですが…… XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 16 requests (14 known processed) with 0 events remaining. 自分で調べて、etc/X11/xorg.confというファイルにが重要であると わかったので、xorg.confに Section "ServerFlags" Option "AllowEmptyInput" "off" EndSectionを 追加しようとしていますが、普通のテキストエディタでは 「そのファイルを保存するために必要な権限がありません。入力した場所が正しいか確認して、もう一度実行してみて下さい。」 と出て保存出来ないのですが、どうすればいいでしょうか? また、コマンドプロンプトでも試して見ましたが、 E325: ATTENTION Found a swap file by the name "/etc/X11/.xorg.conf.swp" owned by: root dated: Mon Apr 6 14:37:03 2009 file name: /etc/X11/xorg.conf modified: YES user name: root host name: mikan process ID: 8021 While opening file "/etc/X11/xorg.conf" dated: Thu Mar 5 23:15:04 2009 (1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution. (2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r /etc/X11/xorg.conf" to recover the changes (see ":help recovery"). If you did this already, delete the swap file "/etc/X11/.xorg.conf.swp" to avoid this message. "/etc/X11/xorg.conf" 33 lines, 1037 characters と出てどうすればいいか迷っています |
>>4985 ちびヴァル > Found a swap file by the name "/etc/X11/.xorg.conf.swp" vim が作成したスワップファイルでしょうから、.xorg.conf.swp を 削除して、root 権限で xorg.conf を更新すればよいと思います。 |
>> 4978 > find . -newer foo の方法を書いておきます。find を使わないなら、 > 昨日9時の日時 (20090323090000) を Time::Local で epoch time に > 直しておき、stat() が返す最終更新時刻と比較すればよいでしょう の方法を教えて欲しいのですが。 |
Bシェルで、sedを使って、フルパスからディレクトリとファイル名を 分割したいのですが良い方法を教えてください。 ファイル名を取り出すことは出来たのですが、パス名を取り出すこと ができません。 また、ルート直下「/txt.csv」のような場合だと、ファイル名が取り出せ ません。結果が、「/txt.csv」となってしまいます。「txt.csv」と したいのです。 ------------------------------------ FILE=/aaa/bbb/txt.csv echo ${FILE} | sed 's/\/.*\///g' FILE=/txt.csv echo ${FILE} | sed 's/\/.*\///g' FILE=txt.csv echo ${FILE} | sed 's/\/.*\///g' 環境は、 Solaris8 Bシェル |
>>4989 べた basename・dirname コマンドを使うのはダメですかね。 |
>>4990 68user >basename・dirname コマンドを使うのはダメですかね。 も考えましたが、 出来れば、使わない方法でと |
>>4991 べた 普通に考えると、それ専用のコマンドがあるんだからそれを使うべき。 sed でやりたいならこんな感じかなぁ? - ファイル名 echo ${FILE} | sed 's/.*\///g' - パス名 echo ${FILE} | sed 's/\(.*\/\)[\/]*/\1/g' |
>>4992 zsh > 普通に考えると、それ専用のコマンドがあるんだからそれを使うべき。 すみません。 > - パス名 > echo ${FILE} | sed 's/\(.*\/\)[\/]*/\1/g' が、上手くいきませんでした。 パス名がとれません。フルパスが返ってきます。 /aaa/bbb/txt.csv → /aaa/bbb/txt.csv /txt.csv → /txt.csv |
>>4992 zsh > 普通に考えると、それ専用のコマンドがあるんだからそれを使うべき。 すみません。 > - パス名 > echo ${FILE} | sed 's/\(.*\/\)[\/]*/\1/g' が、上手くいきませんでした。 パス名がとれません。フルパスが返ってきます。 それと、ファイル名のみ場合は、値がなしとしたいのですが。 /aaa/bbb/txt.csv → /aaa/bbb/txt.csv /txt.csv → /txt.csv |
>>4994 べた 失礼しました。↓でどうでしょうか? echo ${FILE} | sed -n -e 's#\(.*\)/[^/]*#\1#p' |
>>4996 zsh ありがとうございます。 パス名を取り出すことができました。 ただ、以下の様に場合、上手くいきません。 「FILE=/txt.csv」の場合 「/」となりません。 ブランクというか、改行します。 「/」だけ取り出すというのは無理なのでしょうか。 「FILE=txt.csv」の場合 ブランクとなります。 正しい動きなのでしょうか。 |
nawkのユーザ定義関数について教えて下さい。 nawkで、ユーザ定義関数を呼び出して編集を行っているのですが、 ユーザ定義関数内で編集した値を、パラメータで渡した変数に設定 して返却したいのでが値が返却されません。 ユーザ定義関数内では、渡した変数に値が設定されているのですが、 関数を抜けると値が設定されていません。 どうしてなのでしょうか。 それとも、無理なのでしょうか。 パラメータで渡した変数に設定して返すことができるのでしょうか。 環境 OS:Solairs8 シェル:Bシェル(sh) -------------------------------------------------------------- nawk -v OUT=${OutFile} -F"," ' BEGIN { count = 0+0; } function chk2(arg1,arg2,val) { sub(/^"*/,"",arg1); sub(/"*$/,"",arg1); sub(/^"*/,"",arg2); sub(/"*$/,"",arg2); val=sprintf("%s %s",arg1,arg2); } function chk1(arg1,val) { sub(/^"*/,"",arg1); sub(/"*$/,"",arg1); val=arg1; } { chk1($1,UserID); chk2($8,$9,Name); printf("%s,%s\n",UserID,Name); #printf("%s,%s\n",UserID,Name) >> OUT; count++; } END { printf("Output number : %d\n",count); }' ${FILE} |
>>4997 べた > 「FILE=/txt.csv」の場合 パス名末尾の / を出力しないようにしていたためですね。 echo ${FILE} | sed -n -e 's#\(.*/\)[^/]*#\1#p' こうすれば出力されると思いますが、 逆に /hoge/fuga.txt のような場合でも /hoge/ となります。 > 「FILE=txt.csv」の場合 パスが指定されていないので、ブランクで正しいと思っていますが。 (そういった条件もありませんでしたし。) >>4998 ふくし nawk は参照渡しできないはずなので、そういう書き方ではできません。 ただ nawk では、ユーザ関数の引数として定義された変数を除き、 すべてグローバル変数だと思うので、やろうとしていることはできます。 |
>>4997 べた ありがとうございました。 出力されました。 |
>>4999 zsh お礼先誤りですみません。 ありがとうございます。 >> 「FILE=txt.csv」の場合 > パスが指定されていないので、ブランクで正しいと思っていますが。 > (そういった条件もありませんでしたし。) No. 4994で、自分でファイル名のみの場合、値なしとしたいと 書いておきながら正しい動きなんですかと質問すみませんで した。 |
>>4998 ふくし えっ、Solairs8 の nawk って return を使えないんでしょうか? |
>>5002 sfish man には return [expr] と記載があったので、リターンコードを返すものだと思っていましたが、 確かに値を返すことも出来ました。こっちの方がいいですね。 |
>>4999 zsh > ただ nawk では、ユーザ関数の引数として定義された変数を除き、 > すべてグローバル変数だと思うので、やろうとしていることはできます。 どういうことでしょか。 nakwで関数を作るのが不慣れなもので、 nawk内で定義した変数はグローバル変数なので、nawk内であれば、 ユーザ定義関数でも参照や書き換えができるということでしょうか。 また、 ユーザ定義関数ないで定義した変数は、関数内でしか有効とならない ということでしょうか。 例などを載せてくれるとありがたいのですが。 |
>>5004 ふくし > nawk内で定義した変数はグローバル変数なので、nawk内であれば、 > ユーザ定義関数でも参照や書き換えができるということでしょうか。 その通りです。 ただ、 >>5002 sfish で return で値が戻せることを教えて頂いたので 関数側は、 --------------------------------- function chk1(arg1) { sub(/^"*/,"",arg1); sub(/"*$/,"",arg1); return arg1; } --------------------------------- のようにして、呼び出し側は --------------------------------- UserID = chk1($1); --------------------------------- とすれば、やろうとしていることができると思います。 |
初歩的な質問ですが 内蔵HDDを増設し「label:Backup」として、クリックしますと「sdb」と表示されています。 プロパティで、場所は/mntとなっています。 このHDDに mv /home/ormaster/123.txt sdb/123.txt とファイルの移動をしたいのですが方法を教えてください。 |
>>5005 zsh ありがとうございます。 |
エラーメッセージ「cannot execute binary 」についての質問。 以前にservice sendmail start 2<&1 | /bin/mail -s "件名" wenbi@akw.com.cn というコマンドを実行して、正常です。 しかし、下記のコマンドを実行して、「cannot execute binary 」というエラーメッセージを出ました。 この後、上記のコマンドを実行しても、エラーを出ます。 service sendmail start infile.txt iconv -f EUC-JP -t Shift_JIS infile.txt < infile2.txt cat infile2.txt | /bin/mail -s "件名" wenbi@akw.com.cn |
>>5006 まえ mount 済みであれば、mv /home/ormaster/123.txt /mnt/123.txt で いけるのではないかと思います。 >>5008 山田洋子 よくわかりませんが、cannot execute binary のエラーメッセージを 出力しているのが service コマンドなのか、iconv コマンドなのか、 cat や mail なのかを調べてみてはどうでしょうか。 |
nawkでsystem関数で、コマンドを実行しています。 今、system関数で実行したコマンドの結果を変数 に格納したいのですが、結果のステータスが格納 されて、コマンドの実行結果が格納できません。 どうしてなのでしょうか。そもそも不可能なのでしょうか。 system関数で、dateコマンドを実行し、結果を変数に 格納して、nawk内で使用したいのです。 nawk '{system("date +%Y%m%d")}' 環境は、 Solaris8 bsh です。 |
>>5010 ふくし system は単なるコマンドの実行であり、コマンドの標準出力を受け取るような 仕組みになっていません。この場合は getline を使うべきかと思います。 |
>>5011 68user ありがとうございます。 上手くいきました。 |
完全ガイドwindowsxp基本+Q&A 2008,3,20 p275,Q057 1・アイコンの数を増やすは、あるが、減らす方法が、無い。 2・初心者に解かるように、教えて。やり方がわからへん。 |
特定のアイコンを消す方法です。 |
はじめまして ネットワークプログラミングのページは とってもためになりました。 ・読みやすい ・わかりやすい ・内容がある すばらしいです。 少なくとも私の嗜好とあうはず。 なので、 おすすめ書籍を紹介してください! ・実践的にアプリケーションを作る ・複数ファイルのビルドを説明 ・winコンポーネント ・プロセス間通信 ・管理人さんのように読みやすく、わかる、内容がある ・ネットワークアプリ(サーバー、メーラーetc) ・c言語、perl、php(windows いま、プロキシサーバと、メールサーバに興味があるので、 それが作れるような本。(あくまでわかりやすく言ってます) ぜひ、よろしくお願いします。 |
>>5020 たろう すべての要求を満たす本はニッチすぎて存在しないと思います。 特にサーバはニーズがあまりなく、深く掘り下げるほど単なる RFC の解説になってしまうため、書籍としては成立しづらいのかも しれません。 とはいえ、いくつか提示してみます。 ○UNIXネットワークプログラミング入門 http://www.amazon.co.jp/-/dp/4774117544 この本は持っていませんが、前身である UNIXネットワーク・ベストプログラミング入門 http://www.amazon.co.jp/-/dp/4874085032 は持っています。書評は http://x68000.q-e-d.net/~68user/net/link-book.html に書いてあります。 ○Perlネットワークプログラミング―ソケットの使い方から クライアント/サーバーシステムの開発まで http://www.amazon.co.jp/-/dp/4894714655 買っていませんが、目次を見ると結構範囲は広いようです (700ページもあるから当然か…)。深く突っ込んでいるかは わかりません。 ○基礎からわかるTCP/IP ネットワーク実験プログラミング http://www.amazon.co.jp/-/dp/4274065847 アプリレイヤではなく TCP/IP 寄りですが、結構おもしろいことを やっていて勉強になります。読みやすいかというと、個人的には ちょっとつらいです (一枚の複雑な図があって、それを長い文章で 解説するのは無理がある。まぁ書籍だから仕方ないかもしれませんが) あとは、いずれも持っていませんが、 オンラインゲームプログラミング http://www.amazon.co.jp/-/dp/4797328479 MMORPGゲームサーバープログラミング http://www.amazon.co.jp/-/dp/4797328460 といったアプローチもアリかもしれません。 |
>>5021 68user 68userさん。 お返事ありがとうございます。 なんだがいろいろ調べていただいたようで、ありがとうございます。 (68userさんは上級者なんでしょうね) linuxシステムプログラミング http://www.amazon.co.jp/Linux%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E5%9E%B0%E4%BA%95-%E6%AD%A3%E9%9B%84/dp/4274079724/ref=sr_1_2?ie=UTF8&s=books&qid=1247282246&sr=1-2 (私の知りたいことは「プロセス間通信」で、「システムプログラミング」って範疇に入るんだなぁ) これでも読んでみようかと思ってます。 プロセス間通信がわかれば、 数あるソフトウェアを自在に連携して使いこなすことができるる!」 こう思っているが、合ってますでしょうか。(^−^;) |