當(dāng)前位置:首頁(yè) > 學(xué)習(xí)資源 > 講師博文 > Shellz中awk的簡(jiǎn)單用法
Shellz中awk的簡(jiǎn)單用法
時(shí)間:2018-10-28 來源:華清遠(yuǎn)見
其實(shí)shell腳本的功能常常被低估。在實(shí)際應(yīng)用中awk sed 等用法可以為shell提供更為強(qiáng)大的功能。下面我們將一下awk調(diào)用的簡(jiǎn)單方法進(jìn)行了總結(jié)。方便同學(xué)們學(xué)習(xí):
awk的簡(jiǎn)單用法:
第一種調(diào)用:
awk ‘BEGIN {print “start”;var=1} {print $1, $2} END{var=$3}’file
使用單引號(hào)括起awk的命令,{ }代表不同的動(dòng)作中間的代碼段(紅色部分):在執(zhí)行每一條記錄時(shí)都會(huì)執(zhí)行。
BEGIN 代表開始輸入文件之前的操作
END 代表輸入文件結(jié)束之后的操作
第二種調(diào)用方法:
awk -f test.awk file
test.awk文件的寫法:
#! /usr/bin/awk –f
BEGIN {print “start”; var=1}
{ print $1, $2;
arg=$3; //////可以用分號(hào)分開不同的操作。
print arg
}
END {printf(“the test is over\n”}
第三種調(diào)用方法:
給test.awk文件添加執(zhí)行權(quán)限: chomd a+x test.awk
./test.awk file
參數(shù)和表達(dá)式使用:
1)
-F “:” 代表域的分割符是 冒號(hào)。
awk -F “:” ‘{print $1, $2}’ file
或者使用FS變量
awk ‘BEGIN{FS=”:”; var=2} {print $1, $2} ‘ file
2)支持 printf的格式化輸出
awk -F “:” ‘{printf(“%d, %d\n”, $1, $2}’ file
3) $0代表所有的域
$1代表第一個(gè)域
系統(tǒng)變量 FILENAME代表當(dāng)前文件名
系統(tǒng)變量 ARGC代表當(dāng)前傳入?yún)?shù)的個(gè)數(shù)
系統(tǒng)變量 ARGV代表當(dāng)前傳入?yún)?shù)的數(shù)組
系統(tǒng)變量 FS 代表字段分割符
系統(tǒng)變量 NF 代表當(dāng)前記錄的域數(shù)量
系統(tǒng)變量 NR 代表當(dāng)前記錄數(shù)
print NR;print NF;
4)支持if else 語(yǔ)句。
{
If ($2 >= 0)
{ print “$2 is >= 0”;
print “$2 is greate 0”
}
else
{
print “$2 is < 0”;
print “$2 is < 0”
}
}
5)可以在shell腳本中使用:
可以方便的將awk獲得值賦值給一個(gè)變量。
(1)#!/bin/bash
var=` grep -e “\
echo $var
(2)#!/bin/bash
var= ` ./$1 $2 `
其中: $1 是帶有執(zhí)行權(quán)限的 test.awk文件
$2 時(shí)需要檢索的文件file
運(yùn)行: ./test.sh test.awk file
課程分享:華清遠(yuǎn)見聯(lián)合NXP推出i.MX8M Plus開發(fā)與實(shí)踐
課程分享:鴻蒙HarmonyOS系統(tǒng)及物聯(lián)網(wǎng)開發(fā)實(shí)戰(zhàn)課程(
課程分享:HaaS EDU K1開發(fā)教程(附課程視頻及源碼下
新版C語(yǔ)言編程之控制語(yǔ)句視頻教程重磅贈(zèng)送(嵌入式入
價(jià)值2000元的嵌入式精裝教程大禮包免費(fèi)送!(搞懂嵌入
價(jià)值1000元的最新ARM系列視頻完整版教程新鮮出爐(免
【最新】ARM課程課堂實(shí)錄精華版視頻免費(fèi)領(lǐng)取(內(nèi)含源
如何利用機(jī)器學(xué)習(xí)構(gòu)建個(gè)性化推薦系統(tǒng)
嵌入式系統(tǒng)從上電到操作系統(tǒng)運(yùn)行的完整啟動(dòng)流程
如何在不同工作場(chǎng)景下優(yōu)化嵌入式系統(tǒng)的電源消耗
硬件抽象層(HAL)的設(shè)計(jì)如何提高代碼的可移植性
批量歸一化在深度學(xué)習(xí)訓(xùn)練中的作用和實(shí)現(xiàn)方法
物聯(lián)網(wǎng)項(xiàng)目中設(shè)計(jì)嵌入式系統(tǒng)時(shí)的關(guān)鍵技術(shù)和考慮因素
通過自然語(yǔ)言處理技術(shù)理解文本的深層含義
如何基于RISC-V架構(gòu)設(shè)計(jì)高效能的嵌入式系統(tǒng)
LSTM和GRU在時(shí)間序列預(yù)測(cè)中的應(yīng)用
JTAG和SWD的調(diào)試技術(shù)及應(yīng)用
