awk與shell之間的變數傳遞方法

2021-09-24 13:12:33 字數 1310 閱讀 3271

linux下awk是個好東東,處理一些文字檔案會非常方便。而在linux下嘛,經常會和shell打交道,所以awk和shell之間的變數相互傳遞,有時還是很有必要的,所以簡單總結一下吧。

awk中使用shell中的變數

一、 「『$var』」

這種寫法大家無需改變用『括起awk程式的習慣,是老外常用的寫法.如:

var=」test」

awk 『begin』

這種寫法其實際是雙括號變為單括號的常量,傳遞給了awk.

如果var中含空格,為了shell不把空格作為分格符,便應該如下使用:

var=」this is a test」

awk 『begin』

二、『」$var」『

這種寫法與上一種類似.如果變數含空格,則變為『」」$var」」『較為可靠.

三、 export變數,使用environ["var"]形式,獲取環境變數的值

例如:var=」this is a test」; export var;

awk 『begin』

四、可以使用awk的-v選項(如果變數個數不多,個人偏向於這種寫法)

例如:var=」this is a test」

awk -v awk_var=」$var」 『begin 』

這樣便把系統變數var傳遞給了awk變數awk_var.

awk向shell變數傳遞值

「由awk向shell傳遞變數」,其思想無非是用awk(sed/perl等也是一樣)輸出若干條shell命令,然後再用shell去執行這些命令。

eval $(awk 『begin』)

或者eval $(awk 『』 abc.txt)

之後可以在當前shell中使用var1,var2等變數了。

echo 「var1=$var1 —– var2=$var2″

linux入門之awk和shell變數傳遞

一 awk使用shell中的普通變數 方法1 使用引號法 aa hello awk begin 輸出 aa awk begin 輸出hello awk begin 輸出空aa hello coder awk begin 報錯,雙引號沒配對,因為中間出現空格 awk begin 能正常顯示hello ...

shell往awk傳引數

本文 記錄無限 www.gluoo.cn 今天在搞指令碼,需求是這樣的,有乙個檔案格式大概是這樣的 180 analyzer 20 job 1 需要按第一列的數值讀取這個檔案,比如第一行大於等於20的顯示出來,剛開始用的指令碼是這樣的 demo.sh bin bash threadhold 1 aw...

awk 變數傳到shell

今天之前的同事問我乙個關於awk的問題。他的意思是通過awk操作獲得的幾行資料是不定的,需要將獲得的幾行資料存到乙個陣列中,又不想使用迴圈。經過一下午的努力。終於實現了。最終命行eval ps ef grep tomcat awk sed home d sed s home g sed s g aw...