本月博客排行
年度博客排行
-
第1名
宏天软件 -
第2名
龙儿筝 -
第3名
青否云后端云 - wallimn
- vipbooks
- gashero
- wy_19921005
- benladeng5225
- fantaxy025025
- zysnba
- ssydxa219
- e_e
- javashop
- sam123456gz
- arpenker
- tanling8334
- kaizi1992
- xpenxpen
- xiangjie88
- wiseboyloves
- ganxueyun
- lemonhandsome
- xyuma
- sichunli_030
- wangchen.ily
- jh108020
- zxq_2017
- jbosscn
- Xeden
- zhanjia
- forestqqqq
- johnsmith9th
- luxurioust
- lzyfn123
- ajinn
- nychen2000
- wjianwei666
- daizj
- hanbaohong
- 喧嚣求静
- ranbuijj
- silverend
- kingwell.leng
- lchb139128
- kristy_yy
- lich0079
- jveqi
- java-007
- sunj
- yeluowuhen
最新文章列表
awk中的字符串处理函数
//TODO
1. index 与 match的区别
2. length, substr, ........
3. 跟正则相关的. 替换函数 sub, gsub
3. 类似的“子表达式向前引用”
& 引用匹配到的子串
s="123aa456bb" ; sub("aa","[&] ...
shell sh程序同时只能运行一次
#!/bin/sh
checkPid(){
pid=$$
name=`basename $0`
echo $pid $name
if [ -f ./d.pid ]; then
lastPid=`cat ./d.pid |awk '{print $1}'`
echo $lastPid
x=`ps -ef|grep $name |grep -v grep |gr ...
AWK 几个特殊的内置变量
FILENAME:当前文件名 只能在Action里引用,而不能再BEGIN{}里。
ARGC:命令行参数的数目;是一整数,代表命令行上除了选项-v, -f 及其对应的参数之外所有参数的个数ARGV:包含命令行参数字符串数组,ARGV[0],ARGV[1]....ARGV[ARGC-1]分别代表命令行上相对应的参数,
可以引用到文件名
FNR:和NR类似,打开一个文件 ...
awk实例一:简单入门
Awk是一种处理结构数据并输出格式化结果的编程语言, Awk 是其作者 "Aho,Weinberger,Kernighan" 的简称。
Awk通常被用来进行格式扫描和处理。通过扫描一个或多个文件中的行,查看是否匹配指定的正则表达式,并执行相关的操作。
Awk的主要特性包含:
1. Awk以记录和字段的方式来查看文本文件
2. 和其他编程语言一样,Awk 包含变量、条 ...
awk命令详解
AWK介绍
0.awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。
1.awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。
2.三种方式调用awk
1) awk [opion] 'awk_script' input_file1 [input_file2 ...]
awk的 ...
记录awk的内置函数
awk是个优秀文本处理工具,可以说是一门程序设计语言。下面是awk内置变量。
一、内置变量表
属性 说明
内置变量表
$0
当前记录(作为单个变量)
$1~$n
当前记录的第n个字段,字段间由FS分隔
FS
输入字段分隔符 默认是空格
NF
当前记录中的字段个数,就是有多少列
NR
已经读出的记录数,就是行号,从1开始
...
使用awk和grep进行数据抽样比较
在进行数据抽样时,我们关注所抽取的数据在整体数据中分布的均匀性。
最简单的就是均匀抽取,即每隔几行选取一行。
比如,数据文件较大时,每隔10行或者每隔100行进行抽取。
假如数据文件还是“msg”
我们每隔10行取一行,有两种方法:
方法1:nl+grep
nl msg | grep -P '1\t' > target_file
方法2:awk
...
简单比较Linux命令中字符串查找的效率
有时候,我们要简单统计下一个文件中包含某个特殊字符串的行数。
我第一个想到的是grep + wc,不知道你想到了什么,不过,我们确实有多种方法。
假如我们的文件叫msg,里面有23380092行数据。
某些行是这样的receive: msg1
我们的任务是找出这些行的数量。
1. grep方法
grep ' msg1' msg | wc -l
使用这种方法耗时: 1s
...
awk代码中执行shell
思路: 在awk的print语句中拼出命令,管道输出到shell
>ll | awk /txt/ '{print $9}' #列出包含 txt 的文件
假设需要把这些文件都复制一份,并更改后缀名位 doc
ll |awk ' /txt/ {print "cp -r "$9" "$9".doc"}' ...
awk 引用shell变量, 变量的作用域
http://blog.sina.com.cn/s/blog_63092e670100r4th.html
1. '' 单引号截断,注意:如果变量的值有空格的话,必须要加双引号""(参见上面的链接),否则空格会导致 cmd空格option空格params
2.ENVRION["varName"]
3.-v传递参数
GOOD:
http:/ ...
awk的helloworld
两次过滤
awk -F '"' '{print $2}' icon.txt | awk -F ',' '{print $1}'>add.txt
#!/bin/awk -f
BEGIN {
for(i=0;i<ARGC;i++){
printf "ARGV[%d]= %s\n",i,ARGV[i];
}
...
awk的内置系统变量
awk中有许多系统变量或内置变量。
这里分两种:
--可以改变的系统变量(比如默认的字段和记录分隔符)
--不可以改变的,由awk系统自己更新的变量(当前记录的编号和输入文件名)
FS:字段分隔符,默认值是一个空格
NF:当前输入记录的字段个数
RS:定义为一个换行符
NR:定义为输入的行数
ORS:与RS等效的输出,默认也是一个换行符
OFS:与FS等效的输出 ...
awk中调用shell变量注意事项
awk中不能直接用$var来引用shell的变量,昨天写的shell脚本,有一列是不正确的,导致最后一列>50那处数据不正确,悲催的语法。有空再把质量统计数据加入到支撑平台吧。
#app avg quality
echo "app avg quality:"
awk -F , '$5==" app=blog"&&($7==" ...
根据访问日志统计排名前几的访问ip
维护的一个应用,统计PV/UV的时候,发现有天的访问超出其他天一大截,感觉是被攻击了,或者是被爬虫抓取。因此需要统计一些ip,让PE分析一下这些攻击ip为何被封掉。
根据访问日志统计排名前几的访问ip,一条AWK便能完成:
cat xxx-access_log |awk '{++S[$3]} END{for(a in S) if(S[a] > 2000) print ...