awk用法
awk是一款文本處理工具,通常在Unix和Linux操作系統(tǒng)中使用,用于以行為單位對(duì)文本進(jìn)行處理和操作。它可以讀取輸入文本,對(duì)其進(jìn)行處理,生成報(bào)表、統(tǒng)計(jì)信息等,并將結(jié)果輸出到標(biāo)準(zhǔn)輸出設(shè)備中。
它主要有以下特點(diǎn):
一、可以處理結(jié)構(gòu)化數(shù)據(jù),如模擬數(shù)據(jù)庫(kù)的關(guān)系型數(shù)據(jù)操作;
二、支持正則表達(dá)式匹配和字符串操作;
三、可以使用多個(gè)內(nèi)置變量和函數(shù),方便快捷地對(duì)數(shù)據(jù)進(jìn)行處理;
四、支持流程控制和條件處理;
五、支持與其他Unix及Linux命令行工具配合使用;
awk的語(yǔ)法結(jié)構(gòu)比較簡(jiǎn)單,它的基本語(yǔ)法格式如下:
awk 'pattern {action}' filename
設(shè)置rtc時(shí)間腳本
#!/bin/sh
echo -e "e[1;36m-------------RTC TEST-------------e[0m"
date -s "2023-1-1 00:00:00"
hwclock -w
year=$(hwclock | awk '{print $5}')
month=$(hwclock | awk '{print $2}')
day=$(hwclock | awk '{print $3}')
if [ $year -eq 2023 ] && [ "$month" = "Jan" ] && [ $day -eq 1 ]
then
echo -e "e[1;32m RTC OK e[0m"
else
echo -e "e[1;31m RTC ERR e[0m"
fi
RTC(實(shí)時(shí)時(shí)鐘)功能的腳本程序,主要分為以下幾個(gè)步驟:
一、使用echo命令輸出一段提示信息,表示開始測(cè)試RTC功能。
二、使用date命令設(shè)置系統(tǒng)時(shí)間為2023年1月1日0時(shí)0分0秒。
三、使用hwclock命令將系統(tǒng)時(shí)間寫入RTC芯片中。
四、使用hwclock命令分別獲取當(dāng)前年、月、日,并使用awk命令取出對(duì)應(yīng)的數(shù)值。
五、使用if語(yǔ)句判斷當(dāng)前年、月、日是否等于預(yù)設(shè)值2023年1月1日。
六、如果當(dāng)前年、月、日等于預(yù)設(shè)值,則使用echo命令輸出一段帶有顏色的提示信息,表示RTC功能測(cè)試通過,并將測(cè)試結(jié)果寫入一個(gè)指定的文件中。
七、如果當(dāng)前年、月、日不等于預(yù)設(shè)值,則使用echo命令輸出一段帶有顏色的提示信息,表示RTC功能測(cè)試失敗,并將測(cè)試結(jié)果寫入指定的文件中。
開發(fā)板測(cè)試
root@ELF1:~# chmod 777 rtc.sh
root@ELF1:~# ./rtc.sh