awk 内容

                                    awk相关内容                                      

#只要文件中的路径,不要文件名:
[root@localhost ~]# cat a.txt 
/usr/local/bin/iconv.txt
[root@localhost ~]# awk -F"/" '{$NF=""}{OFS="/"}{print $0}' a.txt 
/usr/local/bin/
[root@localhost ~]# 

 #生成阶梯的数字楼:

[root@localhost servers]# seq 1 9 | awk '{for(i=1;i<=$1;i++)printf i"*"$1"="i*$1" ";print "
"}'
1*1=1 

1*2=2 2*2=4 

1*3=3 2*3=6 3*3=9 

1*4=4 2*4=8 3*4=12 4*4=16 

1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 

1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 

1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 

1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 

1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

让指定列相加:

#2015-11-09-0000-2330_jxxcdn.dj-game.cn.cn是这个文件的名字,让这个文件的第10列相加,可以通过以下两种方式实现:

awk '{a+=$10}END{print a}' 2015-11-09-0000-2330_jxxcdn.dj-game.cn.cn

awk '{print $10}' 2015-11-09-0000-2330_jxxcdn.dj-game.cn.cn | awk '{sum+=$1}'END'{print sum}'

取系统的剩余内存:

free -m | awk '/buffers/cache/{print $NF}'

 此处的重点是“echo”和“bc”的命令:

echo `“awk ‘{print $10}’ access| grep -v "test"|sed 's#117+#117#g'”`|bc  必须交给echo下

字符串拼接,并使用sh执行:

[root@slavedb test]# ls *.jpg | awk -F '_finished' '{print "mv " $0" "$1".jpg"}'
mv stu_102999_1_finished.jpg stu_102999_1.jpg
mv stu_102999_2_finished.jpg stu_102999_2.jpg
mv stu_102999_3_finished.jpg stu_102999_3.jpg
mv stu_102999_4_finished.jpg stu_102999_4.jpg
mv stu_102999_5_finished.jpg stu_102999_5.jpg
[root@slavedb test]# ls
*.jpg | awk -F '_finished' '{print "mv " $0" "$1".jpg"}'|sh
[root@slavedb test]# ls a.sh stu_102999_1.jpg stu_102999_2.jpg stu_102999_3.jpg stu_102999_4.jpg stu_102999_5.jpg

例子二:
[root@bogon ~]# ls
a_b_1.txt  a_b_2.txt  a_b_3.txt  a_b_4.txt  a_b_5.txt  a_b_6.txt
[root@bogon ~]# ls | awk -F "b" '{print "mv", $0,$1$2}' | bash
[root@bogon ~]# ls
a__1.txt  a__2.txt  a__3.txt  a__4.txt  a__5.txt  a__6.txt