簡體   English   中英

在awk腳本中使用FILENAME

[英]Using FILENAME in awk script

#!/usr/bin/awk -f

{if(!FILENAME) {print "<Gasp.sh> <inputfile>"; exit} calc = 0;....}

我試圖在我的awk腳本中打印出一個用法語句,所以如果腳本在沒有輸入文件的情況下運行,它會顯示用法。 這是我的嘗試,但我假設我沒有正確使用FILENAME變量。 我也嘗試將if語句放在BEGINEND塊中但沒有任何效果。

BEGIN{if (ARGC!=2) {print "<Gasp.sh> <inputfile>"; exit} {calc = 0;....}

請改用ARGC ;

BEGIN {
    if(ARGC==1) {
        print "<Gasp.sh> <inputfile>"
        exit
    } 
    calc = 0
    # ...
}

編輯:不幸的是@shaikisiegal刪除了他的答案,所以我將在這里添加GNU awk文檔部分內置變量的引用:

FILENAME這是awk當前正在讀取的文件的名稱。 當命令行中沒有列出數據文件時,awk從標准輸入讀取,並且FILENAME設置為“ - ”。 每次讀取新文件時都會更改FILENAME(請參閱讀取輸入文件一節)。 在BEGIN規則中,FILENAME的值為“”,因為尚未處理任何輸入文件。

Unix awk的一些早期實現將FILENAME初始化為“ - ”,即使有數據文件需要處理。 此行為不正確,不應依賴於您的程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM