68user's page 掲示板

Prev< No. 4409〜4427> Next  [最新発言に戻る] [過去ログ一覧]
No. 4409 # hagu 2005/12/02 (金) 12:40:44
awkを使用してカンマ区切りのCSV形式のファイルから指定したフィールド位置
の値を取得しようとしているのですが、以下の様にするとファイル名までが
表示されてしまいます。
正しく、表示するよにはどうしたらいいのですか。

実際には、以下の様に出力されます。
ファイル名:20051201 : 1
ファイル名:20051202 : 3

を以下の様に出力したいのです。
20051201 : 1
20051202 : 3

環境は、Solaris8i Bシェル

--------------------
ファイル
年月,名前,ID,値1,値2,値3
20051201,山田 太郎,001,1,1,1
20051201,山田 花子,001,1,2,10
-------------------

第1パラメータ:年月(YYYYMM)
第2パラメータ:ID
--------------------
#!/bin/sh
#

grep $2 ./$1/DiskCapacityTotal_Daily_$1*.csv | awk -F"," '{printf("%s : %s\n",$1,$4)}'
----------------------

No. 4410 # 68user 2005/12/02 (金) 13:37:40
>>4409 hagu
grep に -h オプションを付けるとか、sed で s/^[^:]*// するとか。

No. 4411 # yasu 2005/12/02 (金) 23:15:35
>>4409 hagu
FreeBSDでやってみたら、正しく表示されましたが。。

No. 4412 # 2005/12/03 (土) 01:27:30
>>4410 68user
>>4411 yasu

ありがとうございます。

$1ではなく、$2とか$3と指定すると正しく表示されます。
ファイル名がててきません。

grep $2 ./$1/DiskCapacityTotal_Daily_$1*.csv | awk -F"," '{printf("%s : %s\n",$2,$4)}

No. 4413 # だん 2005/12/03 (土) 09:35:22
>>4409 hagu

grep $2 ./$1/DiskCapacityTotal_Daily_$1*.csv | awk -F"," '{printf("%s : %s\n",$1,$4)' | sed 's/^[^:]*//'

としたとき、ファイル名は消えたのですが、
$1の値を表示した際、前に「:」が残ります。
消したいのですが。

------------
:20051201 : 1
:20051202 : 3
となります。

No. 4414 # zsh 2005/12/03 (土) 14:06:35
>>4413 だん
・・・・まあgrep自体なくても出来るというのは置いといて。

そもそも「ファイル名:」を付加しているのはgrepなんだから、
4410で68userさんが仰っているように、
grepに-hオプションをつけるだけだと思いますが、
こちらは試しましたか?

No. 4415 # びすこ 2005/12/05 (月) 21:24:30
>>No. 4408 68user

回答ありがとうございました。

HTTPでのお試しソースにはConnection: keep-aliveがあって、
HTTPSの方では抜けているのに気がついていませんでした。

HTTPの方でも判ってて書いてたわけではないので、
リクエストについてもっと調べてみます。

No. 4416 # はる 2005/12/06 (火) 19:25:59
はじめまして。
ここのソースを参考にさせてもらい、Mac OSX用のFTPクライアントを以前作りました。
今回、POPクライアントを作ろうと思うのですが、C言語で書かれたシンプルなPOPクライアント
のソースってないもんでしょうか?
今のところネットを検索していて、
http://www.oss-watch.ac.uk/resources/emailclients.xml
にあった、mutt-1.5.10というのがまあまあかと見ていますが、やや面倒。
よろしくお願いします。

No. 4417 # 68user 2005/12/06 (火) 22:21:34
>>4416 はる
fetchmail の前身である popclient はどうでしょうね。
    http://www.interlog.com/~esmith/flames/pop.html
から popclient-2.21 が落とせますが、手ごろなサイズで、それなりにソースも
キレイではないかと思います。

% wc -l *.[ch]
      58 config.h
    535 pop2.c
    533 pop3.c
    592 popclient.c
      93 popclient.h
    175 socket.c
      71 socket.h
  2057 合計

手元の Linux でコンパイルすると可変長引数あたりでこけましたが、適当に直せば
動くでしょう。

No. 4418 # はる 2005/12/07 (水) 07:27:04
>>4417 68userさん
これよさそうですね。
cソースが4つしかないし、pop3.cだけ見ていれば分かりそう。
コンパイルは通らなくてもOKです。これを元にいじってしまいますから。
どうもありがとうございます!

No. 4419 # KA 2005/12/07 (水) 13:10:25
こんにちわ。
シェルにて簡単なメニュー画面作成しているのですが、
一点困ったところがあるので教えてください。
本シェルはrshによって呼び出されていて親シェルとは違うサーバで起動しています。
メニュー画面という事で画面上の掃除のためclearコマンドを使用しているのですが、
rshで呼び出された場合はclear処理が行われておりません。
ローカルでの実行では勿論問題なくclearされます。
rshにて実行する場合画面のclear方法などがご存知でしたら教えてください。
よろしくお願いします。

No. 4420 # 68user 2005/12/08 (木) 00:26:55
>>4419 KA
状況がよくわかりませんが (rsh でコマンドを指定せず実質的には rlogin を
使用するのと同じなのかとか、rsh 先で端末が割り当てられているのかとか、
端末の種類が違うだけなのかとか)、とりあえず
    % clear > clear.txt
としてシーケンスを保存しておき、そのデータを出力してはどうでしょうか。

No. 4421 # cafe 2005/12/08 (木) 09:58:39
cronの変更方法を教えて下さい。

Cシェルの場合は以下コマンドでviが開きます。
setenv EDITOR vi
cd /var/spool/cron/crontabs
crontab -e root

shシェルの場合はsetenvが使用できないので
以下コマンドを使いましたが982とか数字がでてきてviが開きません。
EDITOR=vi
export EDITOR
cd /var/spool/cron/crontabs
crontab -e root

shシェルでのcrontab -e rootの起動はどうづれば良いのでしょうか。

No. 4422 # cafe 2005/12/08 (木) 10:16:19
cronの編集について教えて下さい。

Cシェルの場合は以下の方法で編集しています。これでviが起動できます。
setenv EDITOR vi
cd /var/spool/cron/crontabs
crontab -e root

shシェルの場合、以下コマンドを使用しましたがWAIT状態になりviが起動
できません。起動の方法を教えて下さい。
EDITOR=vi
export EDITOR
cd /var/spool/cron/crontabs
crontab -e root

No. 4423 # 2005/12/08 (木) 16:58:58
初めて質問させていただきます。よろしくお願いします。
マシンはUNIX(日立:HI-UX/WE2)です。
cronで1分間隔でシェルを起動しているのですが、mail情報を
削除していなかったため、大量に溜まってしまい「out of i-nodes」の
メッセーシ゛が出力され、dfコマント゛で確認するとi-nodesが0となっていました。
/usr/spool/mqueueには50万件のmailがたまっています。
また、mailboxも大量にたまり、mailbox.lockというlockファイルができています。
上記内容について、対処方法がありましたら教えてください。
(cronでmail情報を制御する方法は当ホームページで理解できました。)
以上 よろしくお願いします。

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

No. 4424 # 68user 2005/12/09 (金) 00:35:57
>>4422 cafe
手順としては間違っていないと思います (cd は不要ですが)。何がどうなっていて
WAIT 状態と判断したのかわからないので、これ以上は何とも言えませんが、普通に
      % vi 適当なファイル名
で編集はできないのなら vi の問題でしょう。

>>4423
ファイル数が多すぎるので、df で i-node が full になっているファイルシステム内の
ファイルを削除してください。

> mailboxも大量にたまり、mailbox.lockというlockファイルができています。
おそらく dotlock なファイルでしょうけど、いつまでたっても消えないなら
消していいと思います (心配なら MTA などのサーバ類を終了してから)。

No. 4425 # fan 2005/12/12 (月) 17:46:30
回答ありがとうございました。無事RSAの確認できました。
sslv3のFinishedメッセージのことで質問ですが、
ClientKeyExchangeの後のEncrypted HandshakeはFinishedのことでそうか。
あと、Finishedメッセージはmd5_hash[16]+sha_hash[20]と他に何がついてますか。
あと、md5_hash[16]+sha_hash[20]の値が一致しないのですが、何かアドバイスを
いただけないでしょうか。
宜しくお願いします。

No. 4426 # shin1 2005/12/16 (金) 00:33:37
こんばんは。初めて質問させていただきます。
AIXのサーバ上で「各レコードに改行コードが付いておらずファイルの最後に
EOF(0a00)だけが付いているファイル」を2個連結したいのですが、
単純にcatで連結すると、2つのファイルのレコードの間に(0a)が入ってしまいます。
(例)
ファイル1→  xxxx0a00
ファイル2→  yyyy0a00   の場合
cat ファイル1 ファイル2 > ファイル3 とすると
ファイル3→  xxxx0ayyyy0a00  となってしまうが、実は以下のようにしたい

ファイル3→  xxxxyyyy0a00

シェルまたはコマンドを用いて(C言語でプログラミングしない)で、
簡単に上記の形でファイルを連結する方法がありましたら教えて頂けないでしょうか?
よろしくお願いします。

No. 4427 # 68user 2005/12/16 (金) 01:53:00
>>4425 fan
SSL クライアントを実装したことがないのでわかりません (短めのサンプル
ソースを出してもらえばわかるかもしれませんし、やっぱりわからないかも
しれません)。

>>4426 shin1
> AIXのサーバ上で「各レコードに改行コードが付いておらずファイルの最後に
> EOF(0a00)だけが付いているファイル」を2個連結したいのですが、
0x0A は LF、0x00 は NULL 文字で、EOF ではありません。

コントロールコードにおける EOF は 0x1A です (が、UNIX や Windows で
別にファイル終端コードとしての意味を持つわけではない)。

というわけで何を削除したいのかよくわかりませんが、0x1A ならば
    http://x68000.q-e-d.net/~68user/unix/pickup?tr
など。

0x0A ならば、他の LF も削除してしまうと困るでしょうから、最後の
1バイトを削るのがよいでしょう。sed とか head とか dd とか perl とか
を使えばできるのではないかと思います。

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