awk的结构为: partten { action },逢每行都应用这个结构(可有多个这样的结构)
partten是条件,如 if (1 > 2) 或 BEGIN 或 END 或 1 > 2,action是执行动作,如print $1"\t"$2,
sed的结构为:[start][,stop] command,逢每行都应用这个结构
start和stop是用来决定是否在当前行应用command, star和stop可为数字,也可为正则匹配
正则表达式主要分为 字符表达,重复次数表达,重复次数表达应用于前一个字符表达或()组
字符表达:普通字符 [] .
重复次精表达:* + ? {}
此外,还有 | 用来表示两组完整正则表达式的或,()用来表示一个完整的正则表达式,还有$号用来引用被match的正则部分(perl)
AWK字典计算:
awk '{dict[$5]++} END {for(i in dict) print i,dict[i]}' failed.log2011-08-04 | sort -n -k 2 -r
AWK加和:
awk '{ SUM += $5} END { print SUM/1024/1024 }'
AWK字符串切割:
awk '{split($0,a,":"); print a[3]}'
FIND:
find . -maxdepth 1 -mindepth 1 -not -name success.log2011-08-10 -not -name err.log2011-08-10 -not -name failed.log2011-08-10 -not -name crit.log -type f -exec mv {} /data/logs/logs-archive/cvm/ \;
SED替换:
sed "s/%//g" 把%替换成空
export IFS=","
for DISK in $DISKS ; do
...
done