-
cat?passwd|sed?'s/^\(^[a-z_-]\+\):x:\([0-9]\+\):\([0-9]\+\).*/USER:\1?UID:\2?ID:\3?/'
查看全部 -
ls?*.txt|sed?'s/^\W\+/\U&/'?#將txt文件名的小寫字母換成大寫
查看全部 -
sed 命令行模式
sed?-n?'/root/p'?#-n?一個命令 sed?-e?'10,20d'?-e?'s/false/true/g'?#-e兩個命令
查看全部 -
$awk?-F?":"?'BEGIN{count=0}{if($3>100)?name[count++]=$3}END{for?(i=0;i<count;i++)?print?i,name[i]}'?passwd
打印UID大于3的用戶名,存到數組里
查看全部 -
awk拓展應用:對passwd中的賬戶總人數進行統計,注意不要統計空行
$awk?-F?":"?'BEGIN{count=0}$1!~/^$/{count++}END{print?"count="count}'?passwd
count=48
$1!~/^$/
查看全部 -
awk拓展應用:對當前文件夾下文件大小總和進行統計
$ls?-l|awk?'BEGIN{size=0}{size+=$5}END{print?"size?is?"size/1024/1024"M"}'
size?is?93.2972M
查看全部 -
錯誤示范
awk BEGIN{print "Line","Col","NAME"}{print NR,NF,$1}END{print "--------"FILENAME"-------------"}
正確示范
awk -F ":" 'BEGIN{print "Line","Col","NAME"}{print NR,NF,$1}END{print "--------"FILENAME"-------------"}' passwd
查看全部 -
command :pattern ---------邏輯判斷
awk -F ":" '$3>100{print $1,$3}' passwd
邏輯判斷也可以用if的形式寫在{}里面
查看全部 -
command:pattern-----正則表達式
awk -F ":" '$1~/^m.*/{print $1}' passwd
$1匹配到/正則/?
查看全部 -
awk -F ":" '{if($3>100) print "line:"NR"\t""name:"$1}' passwd
if()? ?xxxx
查看全部 -
awk -F ":" '{printf("line:%s col:%s name:%s\n",NR,NF,$1)}' passwd
printf函數說明
printf("要打印的內容%s,默認沒有換行,需要加上\n",對應于%s的變量)
查看全部 -
awk -F ":" '{print "line:"NR,"col:"NF,"user:"$1}' passwd?
括號外加單引號,不能能和括號里的引號一樣,否則會報錯
查看全部 -
任意字符串
^r.*? ? 以r開頭的任意長度的字符串
m.*c? ?以m開頭,c結尾的任意長度的字符串
m..c? ?四個字符長度
邏輯或
grep "bin/\(false\|true\)" passwd
查看全部 -
se*? 匹配:s se? seeeeee 0次或多次
se\+ 匹配:se see seeeeeeeeee? 1次或多次
se\? 匹配: s? se? ?0次或1次
\(se\)*? ? ?匹配0個或多個se,se放在括號里,并把括號轉義
重復
[0-9]\{2,3\}? ?兩位數或三位數
查看全部 -
頭尾字符
^root? ? 以root開頭的行
false$? ? 以false結尾的行
^$? ? ?頭尾相碰代表這行沒有內容,是空行
元字符
\w? 匹配任意字類字符,包括數字字母下劃線
\W? 匹配任意非字類字符,除了數字字母下劃線以外的
\b 代表單詞的分隔 ,
grep "\bx\b" passwd
查看全部
舉報