linux入門之awk和shell變數傳遞

2021-06-17 18:29:23 字數 1065 閱讀 1635

一、awk使用shell中的普通變數

方法1:使用引號法

aa="hello"

awk 'begin '

輸出$aa

awk 'begin '

輸出hello

awk 'begin '

輸出空aa="hello! coder"

awk 'begin '

報錯,雙引號沒配對,因為中間出現空格

awk 'begin '

能正常顯示hello! coder

方法2:使用-v法

awk -v varaa="$aa" 'begin '

awk -v varaa=$aa 'begin '

能正常顯示,-v還是比較方便的,比較清晰

方法3:通過環境變數

aa="this is a test";export aa

awk 'begin'

正常注意設定環境變數的時候是export aa而不是export $aa

方法4:使用awk 'script' awkvar="shellvar" filename

aa="this is a test";export aa

awk 'end' bb="$aa" a.txt

當把end改為begin的時候就不能使用了

二、awk中使用shell的陣列變數

aa=(a b c d e)

awk -v bb="$aa" 'begin'

只能輸出a,估計是陣列aa的第乙個成員

aa=(a b c d e)

awk -v bb="$aa" 'begin'

報錯提示bb不是乙個陣列

aa=(a b c d e)

awk -v bb="$" 'begin'

三、shell中使用awk中的陣列

注意:shell中的陣列是非關聯陣列,下標只能是數字,而awk中的陣列是關聯陣列,下標可以是字串

awk 在begin中定義的變數名稱居然不能叫index

eval $(awk 'begin end}' a.txt)

echo $

echo $

Linux命令 awk 入門教程

參考 阮一峰 佔小狼的部落格 2019 01 09 awk是處理文字檔案的乙個應用程式,幾乎所有 linux 系統都自帶這個程式。它依次處理檔案的每一行,並讀取裡面的每乙個字段。對於日誌 csv 那樣的每行格式相同的文字檔案,awk可能是最方便的工具。awk其實不僅僅是工具軟體,還是一種程式語言。不...

Linux之awk命令詳解

3.awk的執行過程 1 awk script的組成 awk script可以由一條或多條awk cmd組成,兩條awk cmd之間一般以newline分隔 awk cmd由兩部分組成 awk pattern awk script可以被分成多行書寫,必須確保整個awk script被單引號括起來。2...

Linux三劍客之awk命令快速入門

一 簡介 1.1 awk是什麼?awk不僅僅時linux系統中的乙個命令,而且是一種程式語言,可以用來處理資料和生成報告 excel 處理的資料可以是乙個或多個檔案,可以是來自標準輸入,也可以通過管道獲取標準輸入,awk可以在命令列上直接編輯命令進行操作,也可以編寫成awk程式來進行更為複雜的運用 ...