awk、cut 用途:分解字串
awk 基本用法
ls -l | awk '{print $9"\t=>\t"$5}'
判斷式
ls -l | awk '{if($5 > 2000) {print $9" is big!"} else {print $9" is small!"}}'BEGIN & END
ls -l | awk 'BEGIN {print "File\t=>\tSize"} {print $9"\t=>\t"$5} END {print "Done!\n"}'
ls -l | awk 'BEGIN{SUM=0;} {if($5 <= 2000) SUM+=$5} END {print "Total is ... "SUM}'正規表示法
awk '/^B.*\s[0-9]*/ {print $0}' log.txt置換句號成空白(也代表分割字串)
echo abc.cgi | awk -F '.' '{print $1}'列出a1與b1之間的所有行
awk '/a1/, /b1/' log.txt其他
ls -l | awk '{printf "%-20s %020s\n",$9,$5}' // 可格式化
ls -l | awk -va=1 '{print $5,$5+a}' // 可使用變數awk '(NR==1||length(min)>length()){min=$0}END{print min}' data.txt // 查檔案的最短一行awk '{if (length(max)<length()) max=$0}END{print max}' data.txt // 查檔案的最長一行 參考NR:目前行數length():目前行的長度length($0):計算字串長度
cut 基本用法
cut -c1-3 // 顯示第1~3個字元
-b :以字節為單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指定了 -n 標誌。
-c :以字符為單位進行分割。
-d :自定義分隔符,默認为製表符。
-f :與-d一起使用,指定顯示哪个區域。
-n :取消分割多字節字符。僅和 -b 標誌一起使用。如果字符的最後一個字節落在由 -b 標誌的 List 参数指示的
範圍之内,该字符將被寫出;否則,該字符將被排除
沒有留言:
張貼留言