一、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程式來進行更為複雜的運用 ...