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