proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« MSSQL 和 MySQL 取中间某几行的方法 sql语句 | Main | FTP 搜索引擎 parker »

October 6, 2006

awk 匹配

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2006/10/06/001106.html
http://windtear.net/archives/2006/10/06/001106.html

awk 匹配

http://www.gnu.org/software/gawk/

awk经常用在如下的几个方面:
  根据要求选择文件的某几行,几列或部分字段以供显示输出
  分析文档中的某一个字出现的频率、位置等
  根据某一个文档的信息准备格式化输出
  以一个功能十分强大的方式过滤输出文档
  根据文档中的数值进行计算

匹配 pattern 然后执行 action
! /pattern/ {action}
/[0-9]+\.[0-9]*/


BEGIN {FS="[[:space:]+]"}
END {}

BEGIN { count = 0 }
$3 == "windtear.net" { count = count + 1 }
END { printf "%d times",count }

内置变量
NR 已经读取过的记录数
FNR 从当前文件中读出的记录数
FILENAME 输入文件的名字
FS 字段分隔符(缺省为空格)
RS 记录分隔符(缺省为换行)
OFMT 数字的输出格式(缺省为%g)
OFS 输出字段分隔符
ORS 输出记录分隔符
NF 当前记录中的字段数

if(){}else if(){}else{}

例子:
gawk -F":" '{} {print $1 | "sort"}' /etc/passwd
gawk 'END {print NR}' /etc/passwd 相当于 wc -l /etc/passwd
gawk '{print NR,$0}' /etc/passwd 相当于 cat -n /etc/passwd
awk '$3=="windtear.net" {print $1}' access_log |sort |uniq -c |sort -nr +0 > ip
awk '{if($3=="windtear.net") print $1}' access_log |sort |uniq -c |sort -nr +0 > ip
本blog WWW

Posted by windtear at October 6, 2006 11:19 PM

本站使用中的任何问题,请与 windtear @ windtear.net 联系
Copyright© 1999-2024 Windtear. All rights reserved.