awk 呼叫變數

2021-07-02 03:46:11 字數 1345 閱讀 3086

一、用awk 

有以下幾種方法去呼叫變數:

1.  awk '' a=111 b=222 yourfile 注意

, 變數位置要在 

file 

名之前, 

否則就不能呼叫。 還有

, 於 

begin{}

中是不能呼叫這些的

variable. 

要用之後所講的第二種方法才可解決.

2.  awk –

v a=111 

–v b=222 '' yourfile 注意

, 對每乙個變數加乙個 –

v 作傳遞.

3.  awk '' yourfile

如果想呼叫

environment variable, 

要用以上的方式呼叫

, 方法是:

"  '  "  $logname  "  '  "

原文:awk

如何引用外部變數

二、進一步解釋 第

3種方法為什麼要加兩個雙引號和乙個單引號?

$ str=hello

$ awk 'begin'

hello

看上去是雙引號套單引號,其實真正的原因為: 這是

shell

的功能,

shell

對單引號和雙引號,按從左到右的順序成對匹配

awk命令用單引號引起來,就是防止

shell

對其中內容進行解釋

awk '' file

實際上就是2部分

1:awk '' 即

awk對

2個單引號內的命令起作用。 至於

$str

就被shell

正常解釋為變數

str的值。

所以,如果

str=hello

,則經解釋後成為,

awk file

而如果str=hello world

,則解釋時,在解釋前一部分:

awk

兩部分。

按照上面的解釋,就可以這麼來修改,比如

a)$ awk 'begin' 或者

b)$ awk "begin" 或者

c)$ awk begin\ 對於

a,解釋成為:

awk begin #因為

$a在替換後,還在「」中包括中,所以當成了乙個字串處理。

三、總結

awk怎麼說也是要執行在

shell

環境中的。所以,寫在

awk中的命令,要先經過

shell

解析後,再交由

awk來解釋和執行。

更多知識:

AWK呼叫SHELL,並將變數傳遞給SHELL

在shell指令碼中呼叫awk是非常自然和簡單的,以前還寫過乙個關於awk shell相互傳遞變數的文章 awk與shell之間的變數傳遞方法 在awk指令碼中,如果需要呼叫shell指令碼 命令,則需要使用system 函式,如果需要將變數傳遞給被呼叫的shell,則寫為 system sh my...

AWK呼叫SHELL,並將變數傳遞給SHELL

在shell指令碼中呼叫awk是非常自然和簡單的,以前還寫過乙個關於awk shell相互傳遞變數的文章 awk與shell之間的變數傳遞方法 在awk指令碼中,如果需要呼叫shell指令碼 命令,則需要使用system 函式,如果需要將變數傳遞給被呼叫的shell,則寫為 system sh my...

AWk的呼叫精華

awk 的呼叫方式 awk 提供了適應多種需要的不同解決方案,它們是 一 awk 命令列,你可以象使用普通unix 命令一樣使用awk,在命令列中你也可以使用awk 程式語言,雖然awk 支援多行的錄入,但是錄入長長的命令列並保證其正 確無誤卻是一件令人頭疼的事,因此,這種方法一般只用於解決簡單的問...