68user's page 掲示板

Prev< No. 4819〜4824> Next  [最新発言に戻る] [過去ログ一覧]
No. 4819 # 68user 2007/07/25 (水) 01:30:27
>>4818 ふくし
わかっておられるかもしれませんが、use base は built-in な文法ではなく
ただ base.pm を use しているだけなので、base 内の sub import の引数として
渡されるから、ということですね。strict も実体は strict.pm なので同様に
strict refs ではなく 'refs' としなければならないと。

個人的には、ここまで汚い造りにするかねぇ、という感じです。いちおう
つじつまをあわせてるのはすごいですが。

No. 4820 # べた 2007/08/01 (水) 09:33:24
awkを使ってファイルからある部分のデータを取り出そうとしています。

ファイルの内容 ----------------------------------
----------------------------------------
Tue Jul 31 09:00:00 Jst 2007
xxxxxx
xxxxxx
xxxxxx
xxxxxx
Tue Jul 31 09:00:00 Jst 2007
----------------------------------------
Tue Jul 31 09:10:00 Jst 2007
xxxxxx
xxxxxx
xxxxxx
xxxxxx
Tue Jul 31 09:10:00 Jst 2007
----------------------------------------
Wed Aug 1 09:00:00 JST 2007
xxxxxx
xxxxxx
xxxxxx
Wed Aug 1 09:00:00 JST 2007

該当の曜日、月、日から始まる行以降から
最終行まですべてを取り出そうとしているのですが、
awkで上手くいきません。
以下の様なエラーがでて上手くいきません。
どうすればよいのでしょうか。

    awk: syntax error near line 1
    awk: bailing out near line 1



シェルの内容 -----------------------------------------
#!/bin/sh

LOG_FILE="/tmp/kekka.log"

#DATE=`date "+%a %b %e"`
DATE=`date +%C | cut -c 1-10`

awk -v DAY=$DATE'/^DATE/,/\\r/ {print $0}' ${LOG_FILE}

exit 0

No. 4821 # なし 2007/08/03 (金) 23:13:29
UNIXの環境変数のLANGに使用する言語の指定に
「japanese」があるのですが、これは、日本語
が使えるのですか。それとも日本語のSJISが
使えるのでしょう。
また、UNIXのOSがどのコードなのかどこを見れば
わかるのでしょうか。
また、EBCDICコードがあるのですが、これを使うには
どうしたらよいのでしょうか。

No. 4822 # 68user 2007/08/07 (火) 15:41:08
>>4820 べた
> awk -v DAY=$DATE'/^DATE/,/\\r/ {print $0}' ${LOG_FILE}
まずは
    % sh -x スクリプト名
などとして、意図どおりの引数を渡せているか確認しましょう。この場合は
    awk -v DAY=20/^DATE/,/\\r/ {print $0} a.dat
と表示されますので、意図通りではないはずです。

具体的には以下の問題があります。
    - 20 はおそらく希望する値ではない
    - 20 の後に空白がない。
    - DATE の中にある変数でパターンマッチするのではなく、"DATE" という文字列を
        探すようになっている。
    - DAY と DATE の誤記。

>>4821 なし
> UNIXの環境変数のLANGに使用する言語の指定に
> 「japanese」があるのですが、これは、日本語
> が使えるのですか。それとも日本語のSJISが
> 使えるのでしょう。
一般的には japanese は ja_JP.eucJP・ja_JP.PCK (Shift_JIS)・ja_JP.utf-8
などのエイリアスであることが多いように思います。実際にどのエイリアスで
あるかは OS やバージョンによるでしょう。

> また、UNIXのOSがどのコードなのかどこを見ればわかるのでしょうか。
OS により異なると思います。env コマンドで何か出てくるかもしれません。

> また、EBCDICコードがあるのですが、これを使うにはどうしたらよいのでしょうか。
例えば dd コマンドで ASCII に変換できます。商用のアプリケーションも
いくつか出ているようです。

No. 4823 # 68user 2007/08/07 (火) 15:43:08
UNIX の部屋に
    ファイル制限まとめ
    http://x68000.q-e-d.net/~68user/unix/pickup?%A5%D5%A5%A1%A5%A4%A5%EB%C0%A9%B8%C2%A4%DE%A4%C8%A4%E1
を追加しました。

No. 4824 # べた 2007/08/09 (木) 15:50:10
>>68user
ありがとうございます。

>% sh -x スクリプト名
で確認してみました。
DAYとDATEは誤記ですが、DAYに直しましたが結果は同じでした。

awk -v DAY=$DATE'/^DAY/,/\\r/ {print $0}' ${LOG_FILE}
パターンマッチングのところが、引数で渡した値ではなく、
”DAY”という文字列でした。(文字列と言い切れるのかどうか。?)

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