awk經典10種用法 有awk入門教程嗎?
有awk入門教程嗎?答:本文請貼kitman來能回答,理論結合實際為你的獻上奉上后臺必備技能-awk入門教程~簡單的方法那就證明,awk的數值只有一雙精度浮點型。awk是一種相當強橫文本處理工具,可以
有awk入門教程嗎?
答:本文請貼kitman來能回答,理論結合實際為你的獻上奉上后臺必備技能-awk入門教程~
簡單的方法那就證明,awk的數值只有一雙精度浮點型。awk是一種相當強橫文本處理工具,可以普通一個數據庫來建議使用。
$digit代表第幾個字段,字段之間的間隔默認是空格或是t,多個發(fā)動的間隔算一個間隔,$0貞潔戒這一行
awk命令的基本上格式awkawk程序語句輸入文件1輸入文件2…
awk程序語句的基本上格式pattern1 {action1} pattern2 {action2}…
pattern是刪選的條件,支持||、ampamp、!這些條件組合
注:pattern可為空,即每一行,pattern還接受正則表達式,/正則內容/{action}
eg:
awk$6!0{print$0}file1
即這一行的第六個字段不等于零0,則再打印這一行
awk的內置變量NR記錄當前早就讀取數據的行數(并非輸出的行數)
FNR作用域是當前文件的NR F記錄當前行的字段數
trick:當多個再輸入文件時,NRFNR即這一行在第一個文件中,NRgtFNR即這一行還在另一個文件中。
awk的內置特殊能量patternBEGIN:版本問題那個然后輸入文件第一行之前的位置
END:那個輸入輸入文件之后一行之后的位置
awk的actionaction里面可以不定運算,接受-×/%五種運算結果。變量直接只用,不需要聲明;
action中假如有多條語句,那么也可以用隔開
awk中只有四種類型:數值、字符串。也可以變量這個可以不使用字符串的拼接,建議使用空格包圍起來。
eg:
1234
23182
a b 17 1awk $3 gt 15 {countcount 1} END{printcount}
2
awk$3a815{countcount1varcounthahaprintvar}
1haha
2hehe
awk$3a815{countcount1varcount_hahaprintvar}
1_yeah
2_yeah
即換算第三個字段大于015的行數,到最后再打印進去
awk的數組與控制語句awk支持數組,和使用好象的變量一樣的,不是需要聲明,就a[下標]value就可以了。這個下標也可以是字符。
awk還接受好象編程語言中較常見的控制結構if、while、for,和c中的寫法一樣的。
if(){}exists{}
while(){}
for(){}
eg:
逆序再打印行,這里在用了printf,它的用法和c中的printf不多,可以作用于重新格式化的輸出,設置為不輸出來換行。
awk{line[NR]$0}END{iNRwhile(igt0){printfline[i]
ii-1}}
ab171
23182
1234
awk的選項awk-F指定你輸入文件字段的分隔符
eg:
1:234
2:3182
a:b171
awk-F:{print$2}
234
3182
b171
把:該成t之后:
awk-F:{print$2}
空行
空行
空行
注:分隔符是空格時,t又是分隔符;但指定你t是分隔符時,空格并非分隔符
awk的內置函數split(“被快速切割的字符串”,數組名,”分隔符”)
toupper()替換成英文字母
tolower()替換后成小寫
gsub()全局替換
length()算出字符串的長度
eg:
awk{printlength($3)}
1
2
2
大例子業(yè)務場景
收藏排行榜
從收藏存量資料記錄、和能取消收藏存量記錄中,分離提取出收藏排行榜
存量記錄中,$1是用戶uin,$6是漫畫id
思路:
1、把收藏存量記錄中的$1_$6以及一個key,放進一個map,值是收藏時間
2、再從可以取消收藏記錄中,取$1_$6,差別時間,然后刪除掉(普通合并狀態(tài)),接著輸出低結果
3、把數據結果用map記錄信息,計數,輸出結果
4、把數據結果用sort逆序按數字大小排,然后把把次數squeeze掉
對應的腳本語句:
awk NRFNR{a[$1_$6]$7} NRgtFNR{key$1_$6if((keyacrossa)ampamp(a[key]lt$7)){deletea[key]}}END{for(iina){printi}}allcollect03 allcancel03 | awk -F_ {b[$2]b[$2] 1} END{for(iinb){printitb[i]}}|sort-r-n-k2|shoot-f1
Linux下如何統(tǒng)計代碼行數?
學習linux時的筆記客氣
Ls---list會顯示當前目錄列表-a(more會顯示所有文件有.它表示隱藏)-l-h沒顯示具體一點文件
Cd---changdirectorycd目錄(cd~可以表示回家了目錄cd.它表示當前目錄..會回上一級目錄cd-在最近兩次工作目錄切換)
pwd---printworkdirectory
touch---創(chuàng)建家族文件
mkdir---makesdirectory(-p修改遞歸目錄或者:mkdir–p1/2/3/4)
rm---restore(-r刪出目錄–f噬靈鬼斬刪除文件)
clear---定期清理終端
tree---列一樹狀
cp---文件復制原文件(空格)目標文件-i(復制文件給提示)-r文件夾
mv---run原文件(空格)目標文件-i(復制文件給提示)
cat---concatenate全部沒顯示–b輸出行號–n輸出全部行號
more---打開系統(tǒng)內容分屏顯示q逃離
grep---搜索文本內容(-n行數–v不包含的行–i忽略大小寫字母^行首模式直接輸入$行尾模式中搜索)
echo---重定向(a8作為輸出到文件uzibala追加內容或者:ls-lhgta輸出內容到文件aechohellopythondodoqua加分內容到a)
shutdown---關機后(-r重新啟動-c能取消的或:shutdown2:05在這個時間關機后shutdown10在十分鐘后關機后)
ifconfig---查找ip地址加強|例如ifconfig|grepinet
pingip(web默認端口80ssh系統(tǒng)默認端口22)
ssh【-pport】(ip地址)
scp–Pport本地文件user2remorte:目標文件
scp–Pportuser2remorte:目標文件本地文件(-r目錄)
gedit---可以打開文件終端中再打開文件必須重新指定.當前目錄下./文件
chmod---變動權限(/-rwx讀寫負責執(zhí)行)語法:chmod參數目錄第79集初級用法
chgrp–R組名文件是需要超級用戶
chowm修改文件擁有者chown用戶名文件名/目錄名
sudo---暫時沒有超級用戶
groupassign/del增減組在~下想執(zhí)行需要超級用戶
cat/etc/group查看組
useradd/del-m(同時建立家目錄)–g組名
passwd
id用戶---欄里點信息
who/whoai打開系統(tǒng)用戶
user
cat/etc/group(/etc/group)查找組/用戶
usermod---如何修改用戶組user–g(主組)-G(只附加組)組用戶名
usermod–s/bin/bash用戶可以修改用戶名直接登陸第75集
which---查找文件夾目錄/下命令目錄
(bin里面存貯可先執(zhí)行二進制文件sbin中s表系統(tǒng)/usr/bin后期直接安裝的軟件/user/sbin管理模塊文件)
su---直接切換用戶su用戶名su–進入到root(-它表示進入到目錄)
Tab鍵語法著色
通配符
*可以表示0~n個字符
?意思是1個字符
[]表示可以不看操作的字符組([a-z]可以表示a到z的所用字符)
|管道的或:ls|grepals輸出的內容用grep立即一次性處理