awk 命令
来源:互联网 发布:数据录入员工作总结 编辑:程序博客网 时间:2024/05/06 14:56
一.调用awk方式
1. 命令行方式awk [-F filed-separator] ‘commands’ input-files
2. 将所有awk命令插入一个文件,并使awk程序可执行
3. 将所有awk命令插入一个单独文件,调用:
awk –f awk-script-file input-files
二.保存输出
1. $ awk ‘{print $0}’ grade.txt >wow 直接将结果重定向到wow
2. $ awk ‘{print $0}’ grade.txt | tee grade1.txt 将结果重定向到grade1.txt同时打印到屏幕上
三.输入
四.打印
1.$ awk ‘{print $0}’ grade.txt 打印所有记录
2.$ awk ‘{print $1,$4}’ grade.txt 打印单独(第一域和第四域)
3.$ awk ‘BEGIN {print “Name/n-------------”} {print $1,$4}’ grade.txt 打印报告头
4.$ awk ‘BEGIN {print “Name/n-------------”} {print $1,$4} END {“end of report”}’ grade.txt 打印信息尾
五.条件操作符
1.$ awk ‘$0 ~/Brown/’ grade.txt 匹配模式Brown,并打印匹配行
2.$ awk ‘{if($3 ~/48/) print $0}’ grade.txt在第三域中精确匹配48,并返回记录
3.$ awk ‘$0 !~/Brown/’ grade.txt 不匹配模式Brown,并打印匹配行
4.$ awk ‘{if ($6<$7) print $0 “$1 Try better at the next comp”}’ grade.txt 小于
5.$ awk ‘{if ($6>=$7) print $1 ”}’ grade.txt 大于等于
6.$ awk ‘/[Gg]reen/’ grade.txt 设置大小写
7.$ awk ‘$1 ~/^…a/’ grade.txt 抽取名字,为任意字符
8.$ awk ‘$0 ~/(Yellow | Brown)/’ grade.txt 或关系匹配,抽取Yellow或Brown的记录
9.$ awk ‘{if ($1==”A” && $4==”B”) print $0}’ grade.txt AND操作
10.$ awk ‘{if ($1==” Yellow” || $4~/ Brown/) print $0}’ grade.txt OR操作
六.内置变量
1.$ awk ‘END {print NR}’ grade.txt NR打印记录个数
2.$ awk ‘{print NF,NR,$0}’ grade.txt NF显示每条记录有多少个域
七.操作符
1.$ awk ‘{name=$1;belts=$4;if (belts ~/Yellow/) print name “is belt” belts}’ grade.txt 设置域名操作:name=$1;belts=$4
2.$ awk ‘{if ($6<27) print $0}’ grade.txt 域值比较操作$6<27
3.$ awk ‘BEGIN {BASELINE=”27”} {if ($6<BASELINE) print $0}’ grade.txt 给数字赋予变量名,意义同上
4.$ awk ‘{if ($1==”M.Tansley”) $6=$6-1;print $0}’ grade.txt 修改域数值
5.$ awk ‘{if ($1==”M.Tansley”) {$1=” M.M.Tansley” ;print $1}}’ grade.txt
6.$ awk ‘BEGIN {print “Name/t Difference”} {if ($6<$7) {$8=$7-$6;print $1,$8}}’ grade.txt 创建新输出域$8
7.$ awk ‘{(tot+=$6)};END{print “total points:” tot}’ grade.txt 将$6域的值相加并输出结果
八.内置字符串
字符串函数
含义
举例
gsub(r,s)
在整个$0中用s替代r
$ awk ‘gsub(/4842/,4899) {print $0}’ grade.txt
gsub(r,s,t)
在整个t中用s替代r
index(s,t)
返回s中字符串t的第一个位置
$ awk ‘BEGIN {print index(“Bunny”,”ny”)}’ grade.txt
length(s)
返回s长度
$ awk ‘$1==”J.Troll” {print length($1)’ $1}’ grade.txt
match(s,r)
测试s是否包含匹配r的字符串
$ awk ‘$1==”J.Lulu”’ {print match($1,”u”)} grade.txt
split(s,a,fs)
在fs上将s分成序列a
$ awk ‘BEGIN {print split(“12#45”,myarray.”#”)}’ grade.txt
sprint(fmt,exp)
返回经fmt格式化后的exp
sub(r,s)
用$0中最左边最长的子串代替s
substr(s,p)
返回字符串s中从p开始的后缀部分
$ awk ‘$1==”L.Tansley” {print substr($1,3)}’ grade.txt
substr(s,p,n)
返回字符串s中从p开始长度为n的后缀部分
$ awk ‘$1==”L.Tansley” {print substr($1,1,5)}’ grade.txt
- awk 命令
- awk 命令
- awk命令
- awk命令
- awk 命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk命令
- awk 命令
- awk命令
- awk命令
- awk命令
- Audacity -open source analyze
- Cisco Router and switch 配置命令(十一)
- 六十星系之01紫微独坐子午
- .NET : LINQ TO XML中进行XML文件验证
- 可变参数学习笔记-va_list
- awk 命令
- C++中回调(CallBack)的使用方法
- linux echo
- 数据库备份恢复工具
- 字符串常量
- 混的这三年
- Adobe Photoshop CS3怎么做后面是透明的的图片?
- Gmail企业邮箱在用OUTLOK或FOXMAIL有时出现密码错误的解决办法
- Word文档 设置只读模式 防止被复制更改