|
>>4263 まつ > 具体的には、下記のようにすれば良いという事でしょうか? その通りです。 |
|
こんにちわ。19日はお休みを頂いておりました。 >>4264 68user 御礼が遅くなりました。 有り難う御座いました。m(_ _)m |
|
リダイレクションの操作について教えて下さい。 環境は、Solaris8、シェルは、shです。 file1.txtファイルは存在。 file2.txtファイルは存在しません。 の状況で、lsの結果をリダイレクションを使ってファイルに出力 しています。 ls -l text1.txt text2.txt > kekka.txt 2>&1 標準出力と標準エラーを、kekka.txtファイルに出力。 ls -l text1.txt text2.txt 2>&1 > kekka.txt 標準出力のみ、kekka.txtに出力。 ls -l text1.txt text2.txt 2>&1 2> kekka.txt 標準エラーのみ、kekka.txtに出力。 ls -l text1.txt text2.txt 2>&1 >&kekka.txt 標準出力と標準エラーを、kekka.txtファイルに出力。 何故なのでしょうか。 ls -l file1.txt file2.txt 1>&2 2>&kekkat.xt sh kekka.txt: ambiguous redirect 何故なのでしょうか。 |
|
>>4266 つ No.4266の書込み内容が間違っていました。名前も中途半端です。 訂正も含め再書込みします。 リダイレクションの操作について教えて下さい。 環境は、Solaris8、シェルは、shです。 file1.txtファイルは存在。 file2.txtファイルは存在しません。 の状況で、lsの結果をリダイレクションを使ってファイルに出力 しています。 ls -l file1.txt file2.txt > kekka.txt 2>&1 標準出力と標準エラーを、kekka.txtファイルに出力。 ls -l file1.txt file2.txt 2>&1 > kekka.txt 標準出力のみ、kekka.txtに出力。 ls -l file1.txt file2.txt 2>&1 2> kekka.txt 標準エラーのみ、kekka.txtに出力。 ls -l file1.txt file2.txt 2>&1 >&kekka.txt 標準出力と標準エラーを、kekka.txtファイルに出力。 何故なのでしょうか。 ls -l file1.txt file2.txt 1>&2 2>&kekkat.xt sh kekka.txt: ambiguous redirect 何故なのでしょうか。 |
|
便利なページありがとうございます。 http://x68000.q-e-d.net/~68user/net/http-auth-2.html の > 「A1のMD5値 + nonce値 + ":" + nc値 + ":" cnonce値 + ":" + qop値 + A2のMD5値」の MD5 値 ですが、 正しくは、 「A1のMD5値 + ":" + nonce値 + ":" + nc値 + ":" cnonce値 + ":" + qop値 + ":" + A2のMD5値」の MD5 値 だと思います。 |
|
>>4267 つよし とりあえずこれを読んでください。 http://X68000.q-e-d.net/~68user/unix/pickup?%A5%EA%A5%C0%A5%A4%A5%EC%A5%AF%A5%C8 以下、手元に bash しかないため、sh では試していません。 間違いがあれば補足願います>Solaris な方 > ls -l file1.txt file2.txt 2>&1 >&kekka.txt > 標準出力と標準エラーを、kekka.txtファイルに出力。 > 何故なのでしょうか。 そもそもこれは冗長です。 >&kekka.txt だけで標準出力と標準エラー出力が kekka.txt にリダイレクトされます。 sh において (csh も同じですが)、 >&ファイル名 は、標準出力と標準エラー出力をまとめてファイルにリダイレクトするもの だからです。 > ls -l file1.txt file2.txt 1>&2 2>&kekkat.xt > sh kekka.txt: ambiguous redirect > 何故なのでしょうか。 ファイルへのリダイレクトは「>&」ではなく「>」を使うべきだからです。 sh のリダイレクトには以下の 2パターンがあると考えるとよいでしょう。 1. >ファイル名 2. [数字]>&[数字] さらにタイプ量を減らすため、 3. >&ファイル名 (>ファイル名 2>&1 と同じ) という syntax sugar があります。よって、 [数字]>&ファイル名 はおかしいです。とはいえ 1>&ファイル名 は通ってしまいますが。 >>4268 とおりすがり > 正しくは、 > 「A1のMD5値 + ":" + nonce値 + ":" + nc値 + ":" cnonce値 + ":" + qop値 + ":" + A2のMD5値」の MD5 値 ごもっともであります。遅くとも明日までには修正します。 |
|
>>4268 とおりすがり 修正いたしました。ご指摘ありがとうございました。 http://X68000.q-e-d.net/~68user/net/http-auth-2.html http://X68000.q-e-d.net/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/http-auth-2.html |
|
>>4267 つよし >りあえずこれを読んでください。 >http://X68000.q-e-d.net/~68user/unix/pickup?%A5%EA%A5%C0%A5%A4%A5%EC%A5%AF%A5%C8 参考になります。 特に「2>&1」の説明については、「2 の出力先を 1 にマージする」で覚えと説明している 本もありました。 >&kekka.txt については、冗長なんですね。 本来なら、エラーになるはずなの実際には動いているので、おかしいとは 思っていました。 使わない方がよさそうですね。 |
|
>>4271 つよし > 本来なら、エラーになるはずなの実際には動いているので 冗長ですが、エラーではありません。 2>&1 >&kekka.txt は 2>&1 >kekka.txt 2>&1 と同じですが、ひとつのディスクリプタについての複製を複数回行っても 別にエラーにはなりません。 この例では最初の 2>&1 で 2 の出力先が stdout になりますが、後の 2>&1 で 2 の出力先が kekka.txt になり、意味がないだけです。 |
|
>>4272 68user 解説、アドバイスありがとうございます。 |
|
初めて質問させて頂きます。 Solaris9のサーバからmailxコマンド(sendmailを設定済み)を使用してメールサーバ経由で クライアントにE-MAILを送信しようとしています。 問題が一つありまして、クライアントのOUTLOOKで見たとき件名が文字化け してしまいます。 色々調べたところ、sendmailでは文字化けしてしまうのはどうしようもないと 聞きました。 Solaris9でメールを送信できるソフトウェアで件名が文字化けしないようなもの を知っていたら教えて頂けませんか? (メールサーバ側クライアントのメールの設定は変更できません) |
|
>>4275 ひで 普通はプログラム側で MIME エンコードして、sendmail に渡します。 試していませんが、mailx に渡しても多分うまくいくでしょう。 詳しくは http://X68000.q-e-d.net/~68user/webcgi/mail-1.html http://X68000.q-e-d.net/~68user/webcgi/mail-2.html を読んでください。 |
|
UNIX 上のPDFファイルをftp転送してPC上で読み込みたいのですが、 転送後にファイルが壊れているとのことで読み込めません。 何かいい方法はありますでしょうか |
|
>>4277 ろく バイナリモードで転送してますか? |
|
>>4276 # 68user 回答有難うございます。 試してみます。 |
|
Solaris8i、shシェルで以下のような処理をしようとしています。 番号が同じもの同士の値を足し算してその和を求めています。 ファイルフォーマット 番号,値 001,10 001,20 001,30 002,5 003,15 003,20 004,100 結果 001,60 002,5 003,35 004,100 としたいのですが、どうすればよいですか。 |
|
>>4280 くま Solarisi・・・って部分は置いといて。 shというかnawkですが、以下のようにやればできます。 (awkでは動きません。) ------------------------ $ nawk -F, ' /^[0-9]+,[0-9]+$/ { var[$1] = $2; } END { for (i=0; i<=999; ++i) { j = sprintf("%03d",i); if (j in var) print j "," var[j]; } }' data.txt ------------------------ |
|
>>4281 zsh >Solarisi・・・って部分は置いといて。 間違えた・・・Solaris8iだ・・・ |
|
はじめまして。ネットワークプログラミングのページを参考にさせてもらっています。 で、以下の部分、 >>DNS クライアントを作ってみよう (3) >リソースデータは「&Sorry, no version string is available」と表示されるが、 >dig や nslookup は「Sorry, no version string is available」となります (& がない)。 >先頭の & を削るような規則があるようだが、それが何なのかはわからなかった。 これ、'&'=38で、リソースのlengthみたいです。 きちんとした資料では、まだ見つけられていないのですが、 djbdnsのソースコード(dns_txt.c)上では、ドメイン名と同じように、 [length][data][length][data]と見ているようです。 リソースをいくつかのブロック(例えばライン毎など)に分けているのかなーと。 んん。標準な資料を探し中です。 |
|
>>4280 くま Solaris8iは手元にないので試していないですが、shで。 --------------------------- #!/bin/sh # デリミタを[,]に IFS=, # キーのリスト list="" # 計算 while read key value; do eval "if test -z \$array$key;then array$key=0; fi" eval \array$key=`eval "expr \\$array\$key + \$value"` list=$list,$key done < data.txt # 重複したキーを削除する clone=`echo "$list" | sed 's/^,//'` for key in $clone; do list=`echo "$list" | sed "s/$key//g" | sed 's/,[,]*/,/g'` list=$list,$key done # 表示 list=`echo "$list" | sed 's/^,//'` list=`echo "$list" | sed 's/,$//'` for key in $list; do echo -n $key, eval echo \$array$key done --------------------------- $ sh test.sh 001,60 002,5 003,35 004,100 --------------------------- 効率悪そうだ..。 |
|
>>4280 くま 以下ので出来ると思います。 ---------------------------------- #!/bin/sh nawk -F"," ' BEGIN { } function syukei() { total=0+0; no=$1; while (NF>0) { if (no == $1) { total = total + $2; } else { printf("%03d:%d\n",no,total); no=$1; total=$2; } getline; } printf("%03d:%d\n",no,total); } { if (NF == 0) next ; syukei() ; }' file.txt exit 0 |
|
続々と投稿されているので投稿してみます。 >>4280 くま awkなら、 $ nawk -F, '{v[$1]+=$2;}END{for(k in v) print k","v[k]}' data.txt | sort とできると思います。 /+ data.txt -> データファイル +/ |
|
>>4286 nagadomi nagadomiさんのコード凄いですね。 1行で実現してしまうなんて。 自分も、1行で実現できないかと試みてはみたのですが、良い案が浮かび ませんでした。 向学として教えていただきたいのですですが、 番号の比較、判断していませんが、何故、上手く出来ているのですか。 >'{v[$1]+=$2;}END{for(k in v) print k","v[k]}' 宜しくお願いします。 |
|
>>4286 nagadomi うわー、awkってforでその表記できるんだっけー。 すっかり忘れてました。 最近awk触っていなかったとは言え、恥ずかしい・・・ >>4287 シャチ >for(k in v) は、配列vの値を一つ一つ変数kに代入してループするという意味です。 |
|
>>4288 zsh ×配列vの値を一つ一つ変数kに代入してループする ○配列vの添字を一つ一つ変数kに代入してループする |
|
>>4287 シャチ zshのおっしゃるとおりです。 Perlでいうforeach的な使い方です。 >>4288 zsh awkは、1年ほど前に1日(プログラム一個..)使ったことがあるだけだったので、 実はリファレンスをちょっと見ました。 そこでforeachあるじゃんと..。知らない分、確認するのでうまくいった感じですかね..。 zshさんのコードは、ソートを考えて、あのような書き方をしているのかと思っていました。 私は普段、こういうのにはPerlを使っています。 |