68user's page 掲示板

Prev< No. 2692〜2708> Next  [最新発言に戻る] [過去ログ一覧]
No. 2692 # moto 2002/05/17 (金) 06:37:10
ふくしさん、aaaさん、
お二人のコードを参考にして解決できました。
ありがとうございました。

No. 2693 # 名無しさん 2002/05/17 (金) 14:02:00
>>2691 aaa
これはちょっと参考になりませんねぇ。。(aaaさんゴメン)
ちょっと間違ってます。

("[*1]<>aa<>bb<>cc<>dd<>[*2]", "[*3]ee<>ff<>gg"
与えられた配列の、*1〜3の所に項目が一つ増えただけで思ったようには動かないと思う。。

1つの変数にぶち込んだ時点で、*2 *3の区別ができなくなる。
そして、
$str =~ s[ ^\n ]{}gsx;
ですが、、^\nでマッチするところは、s(単一行として扱う)が付いてるから、頭の所("\n<>aa...")の\nが取れるだけだし、、gを付ける必要は無い
ここでまた一つ問題がある。。多分、motoさんの発言を見ると、*1の部分にも項目が来ると思われる。。"xx<>aa<>bb..."
そうすると、1行目に<>が入らず、、
xx
<>aa
...
ってなる。。。
あともう一つ。@arrayは配列だって分かるから括弧を付ける必要は無い
my @array = (...)こんな感じ

No. 2694 # 名無しさん 2002/05/17 (金) 14:21:57
自分で書いてみた。

my @target = ("<>aa<>bb<>cc<>dd<>", "ee<>ff<>gg");

my @result = map {
                my @tmp = split(/<>/);
                shift(@tmp) if $tmp[0] eq '';
                @tmp;
        } @target;


foreach (@result) {
        print "<>$_\n";
}

No. 2695 # G 2002/05/17 (金) 20:32:00
HP-UNIXで過去の日付を表示させる方法しりませんか?
ちなみにenv TZ=JST-9 dateでは1日分しかさかのぼれないので、
他の方法で知っている人がいれば教えてください。

No. 2696 # 68user 2002/05/18 (土) 01:39:02
>>2695 G
shellutils で GNU 版 date をインストールするか、perl で
    localtime(time()-60*60*24)
などとするのがお手軽なんじゃないでしょうか。

No. 2697 # G 2002/05/18 (土) 02:45:24
>>2696 68user
返答ありがとうございます。
なにぶん初心者なもので、アドバイスの意味があまりわからないの
ですが、これから調べてやってみようと思います。
会社の環境ゆえ、インストールはできないのでperlの方を参考に
させていただきます。自力でわからなかったときはまた、よろしく
お願いいたします。

No. 2698 # KL 2002/05/18 (土) 06:31:39
>>2689-2694

〜嫌がらせ編〜 「暗黙の初期化? 怖いけどイイ!」

while (length($a = substr("<>aa<>bb<>cc<>dd<>" . "ee<>ff<>gg", $b++, 1))) {
    uc($a) ne $a && length($c .= $a) == 2 && print "<>$c\n", $c = ''
}

〜お気楽編〜 「パターンマッチマンセー!」

$a = "<>aa<>bb<>cc<>dd<>" . "ee<>ff<>gg";
while ($a =~ /(\w\w)/g && print "<>$1\n"){}

〜メモリ倹約編〜 「入力元即処理!」

(push @x, "<>aa<>bb<>cc<>dd<>"), push @x, "ee<>ff<>gg";
map {while ($_ =~ /(\w\w)/g && print "<>$1\n") {}} @x;

#またはファイルから読み込む場合
while (<FILEHANDLE>) {while ($_ =~ /(\w\w)/g && print "<>$1\n") {}}

No. 2699 # KL 2002/05/18 (土) 06:41:44
よく拝見すると"Perl"とは入ってないですね 笑
>UNIX、CGI、ネットワーク、Java Servlet についての掲示板

No. 2700 # パルテノ [E-mail] 2002/05/22 (水) 01:07:34
はじめまして
HTTPプロトコルを利用したファイル転送について教えて下さい。

私はグラフィックデザインに関わっているので、インターネットを介して
画像や映像など比較的大きなデータを日常的にやり取りしています。
今は、ICQやMSNメッセンジャーのファイル転送を利用しているのですが
相手のファイアーウォールやルーターの設定から接続出来ない事もあります。

また接続が切れてしまった場合、続きから再開できるレジューム機能についても解説して戴けないでしょうか?

宜しくお願いします。

No. 2701 # 石田安弘 [E-mail] 2002/05/23 (木) 15:48:08
はじめまして。石田と申します。
★件名★「UNIXの部屋」公開ありがとうございます。

*現在、私はlinux(Unix)のシェルプログラミングを勉強中です。
*ところが、manコマンドでは全然分からないので、
  GoogleやMLアーカイブ検索して調べていましたが、

*こちらのUNIXの部屋は非常に分かりやすく参考になります。

*分かりやすいポイントは、
    1)パラメータの意味が日本語で分かりやすく書いてある
    2)具体例がメッセージなど併せて書いてある。
ところが非常に分かりやすいです。

*私が今作っているスクリプトは
  1)redhatのupdateのFTPサイトと自分のpcの
      rpmパッケージリストを持って来て、マッチングして、
  2)不足分のファイル一覧を作成
      この中から必要なファイルをFTPでダウンロード

*とにかく、パッケージのアップデートは手間がかかるので、
  なるべく自動化しようと思っています。

* これからも「UNIXの部屋」がんばってください。

No. 2702 # 68user 2002/05/24 (金) 23:33:00
>>2699 KL
> よく拝見すると"Perl"とは入ってないですね 笑
もちろん Perl は UNIX であります (^^

>>2700 パルテノ
> 続きから再開できるレジューム機能
HTTP にはレジュームのような高級な機能はありません。二回目以降の
接続時に、単にデータの開始バイトを指定しているだけです。

接続が切れた場合は、ローカルに落したファイルサイズを見て、
たとえば 1000バイトまでダウンロードできているなら
    GET / HTTP/1.0
    Range: bytes=1000-
とします (ファイル先頭は 0 バイト目)。

http://www.studyinghttp.net/rfc_ja/2616/sec14.html#sec14.35

>>2701 石田安弘
> *こちらのUNIXの部屋は非常に分かりやすく参考になります。
ありがとうございます。改善点などありましたら指摘して下さい。

No. 2703 # くろう 2002/05/25 (土) 13:00:33
はじめまして、くろうです
C言語初心者がいきなりソケットプログラムを作っているのですが
どんな本を見ても、いまいちわからないことがあるので質問します。

UNIXで最大1Mハ゛イトの可変ファイルソケットで受信しているのですが
ソケットで受信する時、recvのバッファーのサイズはどのくらいとるのが適正値なのでしょう。

        char buf[4096];
        rtncd = recv(sockid,buf,sizeof(buf),0);

受信したテ゛ータは連結編集してます。
よろしくおねがいします。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 2704 # 68user 2002/05/25 (土) 13:24:13
>>2703 くろう
100 バイト単位で値を変えて、転送速度を計りましょう。

それが面倒なら 4096 でいいんじゃないでしょうか。
# 僕は面倒なので 4096。

No. 2705 # ゆくま 2002/05/27 (月) 21:04:19
皆さんはじめまして。ゆくまといいます。
いつも「UNIXの部屋」を活用させて頂いております。

現在、UNIXの*について調べているのですが、
もしご存知の方がいらっしゃったら教えていただけますでしょうか?

たとえば、

>ls
file01.dat file02.dat
>cat *

としたとき、catの表示順は必ず、
file01.dat の次に file02.dat
である(つまりソート順)、と決まっているのでしょうか?
もしくは不定なのでしょうか。

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

No. 2706 # 68user 2002/05/27 (月) 22:10:29
>>2705 ゆくま
> file01.dat の次に file02.dat である(つまりソート順)、
> と決まっているのでしょうか?
はい、ソートされます。sh・csh・tcsh・bash・zsh・ksh
など全てのシェルでソートされるはずです。

ただし cat *2* *1* だと file02.dat file01.dat の
順になります。

No. 2707 # ゆくま 2002/05/28 (火) 10:08:28
>>2706 68user
レスありがとうございます。

これってやはり考えるまでも無い当たり前のことなんですかね。
これまで何年かUNIXを使ってきて、そうだとは思っていた
のですが、改めて調べてみたところ、そのことを明記している
ようなドキュメントを見つけることができなかったのです。

おそらく何らかのパブリックなドキュメントには明記してある
ことだとは思うのですが。。。
ご存知の方はいらっしゃいますでしょうか?

No. 2708 # 68user 2002/05/28 (火) 11:14:07
>2707
> おそらく何らかのパブリックなドキュメントには明記してある
> ことだとは思うのですが。。。
手元にあるマニュアルを調べてみました。

FreeBSD 4.5-RELEASE の tcsh(1)
      ファイル名置換
              単語が `*', `?', `[', `{' のいずれかの文字を含む場合、また
              は 先頭が `~' で始まる場合、その単語はファイル名置換 (ある
              いはグロブ (globbing) と呼ばれます) の候補になります。この
              ような単語をパターン (グロブパターン) と見なし、そのパター
              ンにマッチするファイル名のリストをアルファベット順で整列し
              たもので置き換えます。

FreeBSD 4.5-RELEASE の csh(1) ・・・発見できず

Solaris2.6 の sh(1)
    [ファイル名の生成]
          コマンド実行に先立ち、各コマンドワードは、 *、?、および [ を
          含んでいないかチェックされます。これらの文字のいずれかがある
          と、そのワードはパターンとみなされます。このワードは、パター
          ンと一致する、辞書編集方式の順にソートされたファイル名に置換
          されます。

Solaris2.6 の csh(1) ・・・発見できず

bash-2.0.5a
      Pathname Expansion
              After word splitting, unless the -f option has been set,
              bash scans each word for the characters *, ?, and [. If
              one of these characters appears, then the word is regarded
              as a pattern, and replaced with an alphabetically sorted
              list of file names matching the pattern.

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