awk
入力が空のファイルのときにFILENAME変数が何も返さないのはなぜですか?awk
ファイルを開くことができないという意味ですか?開いていない場合は空であることをどうやって知ることができますか?または、開いているとファイル名を返さないのはなぜですか?
私は読んだこの投稿ただし、次の作業が必要な理由は説明しません。
awk 'BEGINFILE{print FILENAME}1' filename
以下はありません。
awk '{print FILENAME}' filename #or
awk 'BEGIN{print FILENAME}' filename
ベストアンサー1
awk
マニュアルから:
FILENAME A pathname of the current input file.
Inside a BEGIN action the value is undefined. (...)
それが説明だと思います。フィールドが処理されるまで値はFILENAME
定義されません。空のファイルの場合、フィールドは処理されないため、変数は初期化されていません。