awk 命令專題
--擷取檔案abc.123.log
--一下結果都是abc.123
ls abc.123.log | awk -F'.' 'BEGIN{OFS="."} NF--'
ls abc.123.log | awk -F . 'BEGIN{OFS="."} NF--'
echo "abc.123.jpg" | awk -F . 'BEGIN{OFS="."}NF--'
echo "abc.123.jpg" | awk -F'.' 'BEGIN{OFS="."}NF--'
echo "abc.123.jpg" | awk -F"." 'BEGIN{OFS="."}NF--'
echo "abc.123.jpg" | awk -F "." 'BEGIN{OFS="."}NF--'
A=abc.123.jpg
name=${A%.*}
echo $name
abc.123
echo ${A%%.*}
abc
僅去除副檔名的話,其實一個%就行了,非貪婪匹配
--------------------------------------------------------------------------
awk '{}' /etc/passwd
awk '/root/{print $2,$1}'
awk -F: '$1~/root/{print $1}' /etc/passwd 第一列匹配root
awk 'BEGIN{a=1;print a}' 輸出1
awk 'BEGIN{a=1;print a,a}' 輸出1 1
awk 'BEGIN{a=1;print a a}' 輸出11
awk 'BEGIN{a=1;print "a"}' 輸出a
awk '{a=1;b=2;print $(a+b)}'<<
awk '/正則/{} /正則/{} /正則/{}' 執行多條指令
awk 'BEGIN{OFS=":"}{print $1,$2}' 改變預設輸出的分割符為:,結果為moma:68.5
awk 'BEGIN{FS=":"}{print $1,$2}' 改變預設輸入的分割符為:
printf:格式化輸出
awk '{printf("\n"$0"\n")}'
awk '{printf("%s%s",$1,$2)}'
awk '{printf("%10s",$1)}' 使輸出的字串佔10個寬度,預設靠右對齊
awk '{printf("%-10s",$1)}' 使輸出的字串佔10個寬度,靠左對齊
awk '{printf("%10.3f",3.3333333)}' 使輸出的字串佔10個寬度,,小數點後要三位,靠右對齊
awk '{a=123.456;printf("%d",a)}' 強制轉換為整數,輸出123
傳遞引數:
var=123
awk -v awkvar=$var '{print awkvar}'
awk {print "'$var'"}'
陣列:
不必指明陣列大小,下標可以為任意字串
awk '{user[NR]=$0}END{print user[5]}'
awk '{IP[192.168.1.254]=254;IP[192.168.1.3]=3}END{for(i in IP){print i;print IP[i]}}' score.txt 列印下標不規整的陣列
awk '{IP[$1]++}END{for(i in IP)print IP[i],i}' /etc/httpd/logs/access_log | sort -nr 統計日誌中IP訪問數量
awk 'BEGIN{print ENVIRON["USER"]}' 陣列中使用環境變數
函式:
awk 'BEGIN{a=11.22;int(a);print a,int(a)}' int函式,結果為:11.22 11
a=12313;print length(a) 取字串的長度
awk 'BEGIN{t="hellolinux";r="x";s="hahaha";print sub(r,s,t),t}' t原字串,r要匹配的字串,替換為s;替換成功返回1,匹配第一次出現
awk 'BEGIN{t="hellolinux";r="x";s="hahaha";print gsub(r,s,t),t}' t原字串,r要匹配的字串,替換為s;替換成功返回1,全域性匹配
awk 'BEGIN{ while(getline < "/etc/shadow" > 0) ;}'
BEGIN{FS=":";while((getline0)name[$1]=$3}
{for(i in name){if(i==$1)print name[i],$2}}
awk 'BEGIN{
# a=5
}
{
if(x~/abc/){ 匹配
}
# if(a>3){
# print $1
# }
# grade=(avg>=60)?"Pass":"Fail"
# while(a>3){
# print $1
# }
sum=0
for(i=2;i<=NF;i++){
sum+=$i
}
print $1,sum/(NF-1)
}
END{}' score.txt
--------------------------------------------------
系統啟動過程:
grub -kernel initrd.img init /etc/inittab /etc/rc.d/rc.sysinit(/lib/module) rc5 rc.local server login /etc/profile
系統關閉過程
~/.bash_logout登出 關閉server killall殺掉程式 關機
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22661144/viewspace-1430654/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- awk命令
- awk命令詳解
- awk命令複習
- linux的awk命令Linux
- awk命令使用例項
- awk命令部分用法
- shell指令碼專題-----cat,find,grep,awk,sed(五)指令碼
- Linux awk 命令詳解Linux
- Linux:“awk”命令的妙用Linux
- 使用 awk 命令統計文字
- shell 中 grep、sed、awk 命令
- linux awk 命令詳解Linux
- linux awk命令詳解Linux
- Linux awk 命令 說明Linux
- vi 命令專題
- tr 命令專題
- sed 命令專題
- find 命令專題
- cut 命令專題
- 技能篇:awk教程-linux命令Linux
- Linux中awk命令詳解Linux
- 【shell筆記>命令】grep,sed,awk筆記
- [轉]linux awk命令詳解Linux
- UnixLike 系統 awk命令淺析
- unix的AWK命令介紹(轉)
- Shell字元操作命令——grep、sed、awk字元
- 使用awk批次殺程式的命令
- Linux系統中的管道命令、grep命令、sed命令和awk命令Linux
- awk小技巧之執行shell命令
- 如何在Linux中使用awk命令Linux
- linux awk命令詳解 --轉載Linux
- linux系統awk命令使用詳解Linux
- AWK原理及命令和檔案輸入
- Windows批處理命令專題Windows
- awk命令和指令碼的編寫啟蒙指令碼
- 007 Linux 命令三劍客之-awkLinux
- 11. [轉載]linux中awk命令使用Linux
- awk命令如何對兩列加分隔符