
awkプログラミングを勉強しています。配列を使ったスクリプトがうまく動作しないのでネットで検索していると"配列を使っていてうまく動かない場合、awk コマンドの引数に --dump-variables を指定することで、利用している変数および配列の一覧を awkvars.out というファイルに出力することができます。”
という書き込みを見つけました。この機能を使用してみたいのですが、うまくいきません。
スクリプトに
#!/nin/awk -f --dump-variables
としてもなにも特別な動作はしてくれませんでした。
No.2ベストアンサー
- 回答日時:
気を付けることが4つ。
1) awkといっても、何種類かの実装があります。本来のawkにはそんな長い名前のオプションはありません。おそらく、GNU awkやその派生品用と思われます。
あなたの使っているawkがGNU版かそうでないか確認してください。
調べ方はいろいろありますが、例えば awk --version と実行してみてください。対応していれば、どんなawkか表示されます。GNU Awk~と表示されたらGNU版です。それ以外だったり、エラーになるようなら、GNU版ではありません。
2) オプションには順番が大事なものがあります。
-f は次の引数をスクリプトファイル名だとして処理します。awk -f --dump-variables では、「--dump-variables」というファイル名のスクリプトを実行しようとします。
3) /ninは/binの間違いでしょうか。
このような表記(shebangと言うそうですが)は、この最初の行を認識するシステムで、直接実行した場合にのみ有効です。
./script.awk とかいうように。
awk script.awk のように実行しているなら、この1行目にオプションつけても意味がありません。
4) また、shebangに引数を書いたときに、どのように解釈されるか、もシステムによって違います。
あるシステムでは「-f」「--dump-variables」という2つの引数として解釈され、別のシステムでは「-f --dump-variables」という一つの引数だと解釈されます。
確実に動作させようとするなら、GNU awkだとして、 awk --dump-variables -f スクリプト とコマンドラインで実行させることでしょう。
No.3
- 回答日時:
スクリプトの先頭に #!/bin/awk -f --dump-variables と書いていて、スクリプト名だけで実行しているとすると、先頭行のオプションは1つしか効かないので、--dump-variables は無視されます。
つまり、#!/bin/awk -f --dump-variables と書いても、#!/bin/awk -f と書いても同じ動作です。
そのオプションを使いたかったら、シェルのコマンドラインから
awk --dump-variables -f ファイル名
ですね。
デバッグでの効果については、過度の期待は禁物です。スクリプトを見直す方がずっと効果的です。
No.1
- 回答日時:
>#!/nin/awk -f --dump-variables
このような機能があること知らないですが・・・所詮はインタープリタ! デバック機能を使えわず、自分でprint文を挿入して、変数の値を確認する方が早いと思います。
ところで何故、AWK? Perlは使わないですか?
まぁ~Perlでも、デバック環境ないですが ^ ^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- その他(プログラミング・Web制作) awkの$NR 2 2022/10/24 11:11
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlのライセンス
-
PerlでUNIXのコマンドとパスワ...
-
pythonプログラム
-
Cからシェルを起動し返り値をハ...
-
標準モジュールを削除したい。(...
-
例外処理のフローチャートの記...
-
「デバイスは PRN を初期化でき...
-
ユーザー定義関数に#NAME?が返...
-
VBでグローバル変数を宣言するには
-
Excel VBAで、ユーザーフォー...
-
Excel VBAでリンク切れをチェッ...
-
VBAで別モジュールへの変数の受...
-
モジュールとサブルーチン
-
VBSがコンパイルエラーになりま...
-
モジュールの最大数はいくつな...
-
Pg.pmモジュールがロードできない
-
COBOLで、Shellを起動するには?
-
グラフのX,Y座標を取得したい
-
エクセルVBAでシートモジュール...
-
Excelシート内セル記述の違いに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlのライセンス
-
vbs: オブジェクトがコレクショ...
-
powershellで関数名を変更する...
-
ADサーバにおけるログインID,PC...
-
Cからシェルを起動し返り値をハ...
-
VBScriptでCurrentDirectoryを...
-
cygwinでcshが認識されず困って...
-
awkの処理速度を改善したい
-
Perlスクリプトで文字化けして...
-
UWSCのスクリプトにラグが発生...
-
Perl Debugger のエラ-
-
perlスクリプト内の変数を別のC...
-
PostgreSQLへPerl Scriptからユ...
-
ディスクの空き容量を求める(W...
-
perl でクッキーの状態を調べる
-
VBSを利用して、IEのタブを自動...
-
rshを使うスクリプトをバックグ...
-
VBSで自動ログインについて
-
perlスクリプトのブラウザURLか...
-
スペースを含むファイルの実行...
おすすめ情報