68user's page 掲示板

Prev< No. 4517〜4520> Next  [最新発言に戻る] [過去ログ一覧]
No. 4517 # ロー 2006/02/13 (月) 13:22:09
>>4516 68user

ありがとうございます。
>> ls ${DIR}*.CSV | sed 's/$DIR}//g'
>'' で囲んだら変数展開されないので、"" で囲みましょう。変数展開できた
>としても s//home/guest///g は sed 的にエラーですが、これはまた別の話。
ダブル「""」で囲んだら展開されませんでした。シングル「''」で囲んだら展開
されました。

> echo $FileLst | awk '{print $NF}'
>など ($NF は gawk では動きましたが、一般的な awk で使用できるかどうかは
>わかりません)。
一般的なawkでも使用できました。

>ls /tmp/*.CSV | awk 'END { print }'
は、ダメでした
結果が得られませんでした。

No. 4518 # zsh 2006/02/15 (水) 11:38:18
>>4512
FNR に現在処理しているファイルのカレントレコード番号が
セットされるのに対して、NR には (n)awk が実行されてから
読み込んだレコード数がセットされています。
  $ nawk '{ print "NR:" NR "/FNR:" FNR }' a.txt b.txt
等とすれば違いが確認できると思います。

>>4517 ロー
Solarisの(n)awkでは
  $ /tmp/*.CSV | awk '{ f=$0; } END { print f }'
のようにしないといけないようです。

No. 4519 # 2006/02/15 (水) 17:14:16
>>4518 zsh
ありがとうございます。

awkのmatch関数なのですが、awk内で使用するとエラーが
ですのですが、どこか使い方がいけないのでしょうか。

抜粋ですが、
awk '
{
pos=match($1,/.CSV$/);
}' ${TEMPFILE}
ファイル名から拡張子以降を取り除くため、拡張子までの
位置を求めようとしています。

awk: syntax error near line 10
awk: illegal statement near line 10
awk: 構文エラー (10 行目の周辺)
awk: 不正な文を検出しました。 (10 行目の周辺)
が発生します。

No. 4520 # zsh 2006/02/15 (水) 19:21:20
>>4519
Solaris 標準の awk (/usr/bin/awk) には、match 関数が存在しません。
対応策としては
  (1)index 関数を使用する
        →ただし、index 関数は正規表現を使用できません。
  (2)nawk を使用する
  (3)/usr/xpg4/bin/awk を使用する
といった所でしょうか。

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