-
awk默認以空格或者Tab制表符作為分隔 cut默認以制表符作為分隔
df -h|grep "/dev/sda1"|awk '{print $5}'|cut -d "%" -f 1? //??/dev/sda5已用百分比數(shù)
1、條件BAGIN表示在所有動作執(zhí)行前先執(zhí)行BEGIN后的那個動作?
如#df -h ?awk 'BEGIN{print "test"}{print $1 "\t" $3}'會在最前面輸出test?
awk在指定分隔符前面一定要加BEGIN?
2、條件END表示在所有動作執(zhí)行后才執(zhí)行END后的那個動作?
如#df -h ?awk 'END{print "test"}{print $1 "\t" $3}' 會在最后面輸出test?
3、FS內置變量?
如:#cat /etc/passwd ?grep "/bin/bash" ?awk 'BEGIN{FS=":"}{print $1 "\t" $3}'?
#awk在指定分隔符前面一定要加BEGIN,此例截取第1、3列?
#cat student.txt | grep -v Name | awk '$4>=70{print $2}' #此例截取除了列頭的成績大于等于70分的學生姓名,grep -v Name為取反命令,不輸出帶“Name”的行
查看全部 -
awk命令
查看全部 -
awk是一個數(shù)據(jù)處理工具,相比于sed常常作用于一整行的處理,awk則比較傾向于將一行分成數(shù)個”字段“來處理。?
通常運行模式: awk ' 條件類型1{動作1} 條件類型2{動作2}...‘?文件名?
例:awk '{printf $2 "\t" $4 "\n"}' filename? //第二列 第四列
? ? ? ?awk '{print $2 "\t" $4}' filename?
printf后面要接換行符"\n" print 不需要
?
查看全部 -
printf和print
查看全部 -
printf
查看全部 -
?printf 1 2 3? ?//輸出1
printf? '%s' 1 2 3? //輸出123
printf '%s %s %s' 1 2 3? //輸出 1 2 3
printf '%s %s' 1 2 3? //輸出 1 23
printf '%s\t%s\t%s\n' 1 2 3 4 5 6
?輸出? ??????????????????????????????????1 2 3
????????????????????????????????????????????4 5 6
echo $(cat student.txt)或者printf '%s' $(cat student.txt)? //printf輸出student.txt文件內容
查看全部 -
printf
查看全部 -
printf
查看全部 -
printf
查看全部 -
grep行提取,cut列提取;?
cut [選項] 文件名?
-f 列號:提取第幾列(從1開始)?
cut -f 列號,列號 (多個列號用逗號隔開;這個方法默認的文件以TAB制表符)?
cut -f 列號,列號 -d "指定的分隔符" (比如圖中,以:為分隔符;列出第1,和第3列的內容 cut-f 1,3 -d ":")?
-d 分隔符:按照指定分隔符分割列 默認為tab制表符
grep "/bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":" 提取非root登錄用戶用戶名;
查看全部 -
#vim命令模式:
清空當前行內容:????d
清空所有內容 :? d+G
查看全部 -
正則實例
正則表達式適合在文檔中提取,不適合做寫入的判斷依據(jù)?
匹配日期:"[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}"?
匹配IP地址:"^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"?
還可以匹配電話號碼、郵件地、URL地址信息等
匹配時間格式:grep "[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}" test.txt?
查看全部 -
\{n,m\}? ?n到m次
查看全部 -
\{n,\}
\{n,m\}? ?n到m次
查看全部 -
\{n\}? 這里面有兩個轉義符,第一個使{喪失作用,第二個使}喪失 作用
查看全部
舉報