68user's page 掲示板

Prev< No. 4868〜4896> Next  [最新発言に戻る] [過去ログ一覧]
No. 4868 # 68user 2008/01/30 (水) 13:41:40
>>4867 Ponta
http://x68000.q-e-d.net/~68user/net/java-http-url-connection-1.html
ですよね?

「ブラウザで見ると」の意味がわかりません。実行例にあるとおり、
コマンドラインからの実行を前提としています。

No. 4869 # しも [E-mail] 2008/02/06 (水) 10:33:11
初めて質問させていただきます。
12月から本格的にUNIXの勉強を始めて、現在はHP-UXの業務に就いております。
参考資料を購入したり、netで調べるもどうしても見つからない。。

質問内容:
ファイルサイズをbyteで表示させるコマンドが知りたいです。

データ移行作業をしているので、移行前マシンと移行後のマシンでの
容量チェックをしなくてはいけなくて。。。
大変初歩的質問で申し訳ないのですが、ご教授下さい。

※HP-UX 11iを使用しております。

No. 4870 # 68user 2008/02/06 (水) 11:42:01
>>4869 しも
よくわかりませんが ls(1) の結果は使えないんでしたっけ?
あとは cksum・wc・find とか。それ以外なら awk・perl あたりでしょうか。

cksum
    http://docs.hp.com/ja/B2355-60129/cksum.1.html
wc
    http://docs.hp.com/ja/B2355-60129/wc.1.html
find . -ls
    http://docs.hp.com/ja/B2355-60129/find.1.html

No. 4871 # しも [E-mail] 2008/02/06 (水) 17:47:36
>>4870 68user
ありがとうございます。
ファイル個々のサイズはcksumやwcで確かに確認できました。
ディレクトリのサイズはbyte表示させる事は不可能なのでしょうか?

duを使用しましたが、KBだったのとブロック単位でした。

No. 4872 # 68user 2008/02/06 (水) 20:57:05
>>4871 しも
HP-UX に限らず、du ではブロックカウント機能しかないと思います。
    http://sonic64.com/2004-05-26.html
のように自前でカウントするしかないでしょう。

No. 4873 # 大臣 2008/02/07 (木) 15:45:40
cygwinでbash not find :bash.exeというエラーがでんだけどどうすれば
いいか教えろ!!!!!どーせ暇だろ!ニート諸君、俺様の変わりに調べろ!
パスの設定はしてある。
俺も暇じゃないから5分やるですぐ調べて返信しろ。貴様らは蛆虫だ。
./bashrc等も完璧
しかーーーーし動かん。楽勝だて。

No. 4874 # ふくし 2008/02/08 (金) 17:11:14
お世話になります。
質問のときだけ現れてスミマセン。
Perl で、

filename -> title
aaa.html -> aaaについて
bbb.html -> bbbについて
ccc.html -> cccについて

みたいなタブ区切りのテキストを読んで処理するとき、カンタンには

while (<>) {
    ($filename, $title) = <>;
}

のようにすると思いますが、1行目に見出しが入っていて、
これを捨てたいと思います。

今は、

$trash = <>;
while (<>) {
    ($filename, $title) = <>;
}

のようにしていますが、
$trash が1回しか使われていませんが書き間違いではありませんか、
という警告が出ます。
警告だから無視すればいいようなものですが、
もっとスマートな書き方はあるでしょうか。

No. 4875 # 68user 2008/02/08 (金) 17:20:10
>>4874 ふくし
- <>;
- my $trash = <>;
- (undef)=<>;
のいずれかでどうでしょうか。Perl5.8.8 では問題ありませんでした。

No. 4876 # ふくし 2008/02/08 (金) 17:51:25
>>4875 68user
さん、ありがとうございます。
いずれも 5.10.0 でもうまくいきました。

(undef) = <>;

というのは自分で思いついていたんですが、
リストコンテクストで評価されて、
全部の行が代入されたのち2行目以降は捨てられる
(1行目も undef だから捨てられる)
ような気がしていました。
ありがとうございます。

No. 4877 # 68user 2008/02/08 (金) 18:48:31
>>4876 ふくし
ああそうですね。書くなら
    (undef)=scalar(<IN>);
でしょうか。しかし仕事でこのコード見たらイラッとしますねぇ。

No. 4878 # has 2008/02/09 (土) 00:08:12
>>4873 大臣
ご期待に沿えず残念ですが、たぶん多忙で善良なプロの皆さんとかからの
回答になると思います。
どのくらい完璧か晒したら進言あるかもですよ。

No. 4879 # ふくし 2008/02/13 (水) 10:56:17
そういえば(どういえばだ)以前(数年前)Perl で

goto FIN;
sub foo {}
FIN:

だとエラーになるけど

goto FIN;
FIN:
sub foo {}

または

goto FIN;
sub foo {}
FIN:
;

だとダメ、という件があったんだけど、急に思い立って perlbug してみました。
2時間後に返事が来て(すげえな)perlsyn に書いてあるけど
それはバグではない、ラベルの後には1個以上の文がなければならないと
いうことです。FAQらしいですね。

No. 4883 # しも [E-mail] 2008/02/14 (木) 15:55:49
>>4872 68user
返信が遅くなりました。
68userさんの仰るように、自分でツールを作成する必要がある事を理解しました。
awkを使って作成しようと思います。
初めて作るので、時間がかかりそうですが結果はまた報告にきます。
ありがとうございました。

No. 4884 # ふくし 2008/02/15 (金) 01:20:39
>>4883 しも
さん、

どっちみち初心者だったら awk より Perl をおすすめします。
汎用性があるし可読性も高くできると思います。
ちょっと書いてみるとこんな感じでしょうか。

★さしでがましければすみません。ここで読むのやめてください ^^





#! /bin/perl -w
# dsize -- カレントディレクトリ以下のファイルサイズを集計

use File::Find;

$total = 0;
find(\&fileProc, '.');
print "Total\t$size\n";

sub fileProc {
    return unless -f $_;
    $size = -s $_;
    print "$File::Find::name\t$size\n";
    $total += $size;
}

No. 4885 # maya 2008/03/04 (火) 16:06:17
初歩的なことなんですが教えてください。
tar.gz な書庫にファイルを追加したい場合、
いちいちgunzipしないといけないんでしょうか?

なにかスマートな方法はあるんでしょうか?

No. 4886 # つのりん [E-mail] 2008/03/23 (日) 20:10:01
はじめまして、つのりん と呼んでください。

早速ですがx68k専用マウスが故障しました。

症状はとしては、カーソルは全く異常なく動作しますが、クリックが左右ともできなくなりました。原因はボタン下のマイクロスイッチの故障ではないかと思われます。

なにか対策法はありませんか?

よろしくお願いします。

No. 4887 # mm 2008/03/24 (月) 06:42:58
はじめまして。
http://x68000.q-e-d.net/~68user/unix/pickup?find
findの説明のところで、
-atime 4 4日前にアクセスされたファイル
-ctime 4 ちょうど4日前にファイルステータスが変更されたファイル
-mtime 4 ちょうど3日前に修正されたファイル
と、mtimeだけ3日前となっていますが、これは間違いでしょうか?

No. 4888 # べた 2008/03/25 (火) 12:40:27
findで、検索する文字が複数出てくる場合の
記述について教えてください。

あるディレクトリに、以下の様な「YYYYmmdd」形式の
ディレクトリが存在した場合ですが、名前がすべて、
「0〜9」の数字であるディレクトリのみを表示したい
のですが、どのように書けばよいのでしょうか。

find . -name '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' -type d
で表示されるのですが、
[0-9]を8回書く以外に、違った書き方はないでしょうか。

find . -name '[0-9]*[0-9]' -type d
find . -name '[0-9]......[0-9]' -type d
find . -name '[0-9]*......[0-9]' -type d
find . -name '[0-9]......*[0-9]' -type d
とかしてみたのですが。



/tmp配下に、
20080301
20080302
20080303
20080303.bk
a0080304
2008030a
200a0306
200080307

No. 4889 # 68user 2008/03/25 (火) 17:25:53
>>4885 maya
> tar.gz な書庫にファイルを追加したい場合、いちいちgunzipしないといけないんでしょうか?
r で追加できますが、gzip してある場合はできないようですので、gunzip が必要と
思われます (BSD tar と GNU tar で確認)。

>>4886 つのりん
ヤフオクによく出品されているように見えますので、チェックしてみてはどうでしょうか
今は「キーボード & マウス [未使用]」が出てますね。

>>4887 mm
> と、mtimeだけ3日前となっていますが、これは間違いでしょうか?
ありがとうございます。誤りでしたので修正いたしました。

>>4888 べた
Perl の正規表現 (PCRE) であれば [0-9]{8} もしくは \d{8} ですが、POSIX における
基本正規表現や拡張正規表現では上記のような表現はできませんので、find にこだわる
のであれば 8回書くしかないです。

あるいは、
    ・File::Find を使った perl のワンライナーでがんばる
    ・シェル変数を使う
            csh・tcsh の場合:
                % set x='[0-9]'
                % find . -name "$x$x$x$x$x$x$x$x"
            sh・bash の場合:
                % x='[0-9]'
                % find . -name "$x$x$x$x$x$x$x$x"
など。

No. 4890 # べた 2008/03/25 (火) 18:30:49
>>4889 68user

ありがとうございます。

No. 4891 # べた 2008/03/26 (水) 15:09:22
perlの使い方なのですが、

日付と時間を表示する簡単なものを作りました。
実行したら動いたのですが、ところが、下記のような
メッセージが出ました。

------------------------------------------------------------
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
                LC_ALL = (unset),
                LANG = "ja_JP.PCK"
        are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
------------------------------------------------------------

このメッセージを表示させないようにするには、どうしたらよいか
教えてください。

環境は、Solari8

以下、perlのシェルスクリプト
------------------------------------------------------------
#!/usr/local/bin/perl
#

($day, $mon, $year) = (localtime(time))[3..5];
printf("Today : %04d/%02d/%02d\n",$year+1900,$mon +1,$day);

($sec, $min, $hour) = (localtime(time))[0..2];
printf("Time : %02d:%02d:%02d\n",$hour,$min,$sec);
------------------------------------------------------------

No. 4892 # maya 2008/03/26 (水) 18:52:55
>>4889 68user

なるほど。ここらへんはzipやrarなどと比べると不便ですね。
ありがとうございました。

No. 4893 # 68user 2008/03/26 (水) 18:54:47
>>4891 べた
「perl: warning: Setting locale failed」で検索すれば出てきますが、
環境変数 PERL_BADLANG を設定することで回避可能です。詳細は検索願います。

No. 4894 # つのりん [E-mail] 2008/03/26 (水) 19:31:35
>4889
ありがとうございます。ヤフーのオークション
で見てみます。

No. 4895 # べた 2008/03/27 (木) 11:29:44
>>4893 68user

ありがとうございます。

perlのスクリプトを実行時のみ有効にしたいのです。
perlのスクリプト内で記述する場合はどのように
定義すればよいのですか。

No. 4896 # 68user 2008/03/27 (木) 11:44:00
>>4895 べた
perl コンパイルの際の Configure 時に設定する方法があります。

それが無理なら
    #!/bin/sh
    PERL_BADLANG=0 /foo/bar/baz.pl
と wrapper を作るか、env コマンドで
    #!/usr/bin/env PERL_BADLANG=0 /usr/local/bin/perl
とする手もあります。

Prev< No. 4868〜4896> Next  [最新発言に戻る] [過去ログ一覧]