1:取出文件中的第i行到第j行:awk 'NR>=i && NR<=j {print $0}' filename
2:vi精确查找:\<keyValue\>
3:指定分隔符:awk '{FS="\t"} {print $2}' filename
4:数值运算:
x=5;
let x=$x+1;
#或者
x=`expr $x + 1` #expr 需要参数之间有空格
5:使用变量来引用shell脚本的任意参数
for ((i=1;i<$#;i++))
do
eval currParam=\$$i;
#引用当前变量
#echo "${currParam}"
done
6:awk中引用shell变量
awk '{print $'"${var}"'}'
其中 print 后的符号顺序为$、单引号、双引号、${var}、双引号、单引号
7:提取文本中两匹配行之间内容
start=0
while read line
do
if [ `echo $line|grep “start flag”|wc -l` -eq 1 ];then
start=1
continue
fi
if [ `echo $line|grep "end flag"|wc -l` -eq 1 ];then
start=0
continue
fi
if [ $start -eq 1 ];then
echo $line
fi
done<file
8.awk的输出不打印第一列
awk '{sub(/^[^[:space:]]*[[:space:]]+/,"");print}' test.txt
或者awk '{$1="";print $0}' test.txt