|
>>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 }' は、ダメでした 結果が得られませんでした。 |
|
>>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 }' のようにしないといけないようです。 |
|
>>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 行目の周辺) が発生します。 |
|
>>4519 お Solaris 標準の awk (/usr/bin/awk) には、match 関数が存在しません。 対応策としては (1)index 関数を使用する →ただし、index 関数は正規表現を使用できません。 (2)nawk を使用する (3)/usr/xpg4/bin/awk を使用する といった所でしょうか。 |