AWK 行距和行号计算
来源:互联网 发布:淘宝买东西好评怎么说 编辑:程序博客网 时间:2024/06/05 11:31
一. 行距:
1. 每行间加一个空行
awk'1; { print "" }' filname.ext #输出当前行,在输出一个空行
awk'1 { print } { print "" }' filname.ext
awk'{ print } { print "" }' filname.ext
2. 1的另外一种实现方法:
awk'BEGIN { ORS="/n/n" }; 1' filname.ext #预先设置每一行的分隔符号为两个换行;你可以尝试把ORS设置为其他的看看效果如何
3. 仅输出非空行,并每行间在加一个空行
awk'NF { print $0 "/n" }' filname.ext #NF表示当前行的字段数,$0表示当前行,最后再加一个换行
4. 双倍行距;没行间两个空行
awk'1; { print "/n" }' filname.ext #默认输出后会换行的,输出/n,则会输出两个空白行
等同于:
awk'{ print; print "/n" }' filname.ext
二. 行号和计算
5. 显示当前行在所在文件中的行号
awk'{ print FNR "/t" $0 }' filname.ext #FNR,表示当前行在文件中的行号
6. 显示当前行在本次处理过程中的行号
awk'{ print NR "/t" $0 }' filname.ext #NR,表示当前行在本次处理过程中的行号
小疑问:为啥有FNR和NR的差别呢?效果不都是一样么? 如果你给如:filname1.ext filname2.ext,你就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的
7. 使用简单样式来输出
awk'{ printf("%5d : %s/n", NR, $0) }' filname.ext #行号占用5位,不足补空格
8. 显示非空行
awk'NF { $0=++a " :" $0 }; { print }' filname.ext #NF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目
9. 计算行数:效果类似wc -l
awk'END { print NR }' filname.ext #END表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。
10. 计算每一行的和
awk'{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }' filname.ext
#s用作每行和的累加,从1到NF(每行总的字段数),依次累加
11. 计算文件中所有字段的和
awk'{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }' filname.ext
#s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0
12. 将每个字段用其绝对值代替
awk'{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }' filname.ext
#$i表示当前行中的字段,$0表示当前行,可以改变$i的值
13. 计算文件中总的字段和(例如计算单词数)
awk'{ total = total + NF }; END { print total }' filname.ext
14. 计算匹配指定信息的总行数
awk'/Linux/ { n++ }; END { print n+0 }' filname.ext
15. 找到文件中每行第一个字段中,最大的数,以及其所在的行
awk'$1 > max { max=$1; maxline=$0 }; END { print max, maxline }' filname.ext
#用max存储最大的数,maxline存储最大数所在的行,并在最后输出
16. 显示当前行的字段数,并输出当前行
awk'{ print NF ":" $0 } ' filname.ext
17. 显示每行最后一个字段的内容
awk'{ print $NF }' filname.ext #NF表示当前行的字段数,例如为3,则$NF,就是$3,也就是第三个字段了
18. 显示最后一行的最后一个字段
awk'{ field = $NF }; END { print field }' filname.ext
#每行处理没有输出,尽在最后输出,field作为每行的最后一行的暂存变量
19. 显示字段数小于4的行
awk'NF < 4' filname.ext #{}以外的内容,作为条件,没有{},则默认输出当前行
20. 显示每行的最后一个字段小于4的行
awk'$NF < 4' filname.ext #注意和19对比
- awk行距,行号和计算
- awk行距,行号和计算
- AWK 行距和行号计算
- awk 打印行号和整行数据
- 行距和对齐方式
- awk 计算数据的和和平均值
- awk行号相关的操作
- awk行号相关的操作
- 计算改变行距的label高度
- 011 测试行距和间距
- word文档中的固定行距和单倍行距
- 利用shell和awk筛选出所有函数定义和声明的地方,并记录文件名和行号
- Awk实现求和、平均、最大值和最小值的计算操作
- awk实现求和、平均、最大值和最小值的计算操作
- awk实现求和、平均、最大值和最小值的计算操作
- awk实现求和、平均、最大值和最小值的计算操作
- awk实现求和、平均、最大值和最小值的计算操作
- datagridview的行距和列距
- POJ1416--DFS入门
- 在Dev C++中制作和使用静态链接库
- 如何将Vim改装成一个IDE编程环境(图文)
- 异步FIFO
- 自动无限轮播图
- AWK 行距和行号计算
- OpenCv学习笔记(六)----图像空间缩减,OpenCv中的计时函数和OpenCv中操作图像单个像素点的方法
- 多个label排版,动态长度及自动换行
- 《Head First-Chapter2》观察者模式
- 02.Java 基础 - 继承
- 在Python中使用机器学习(1)—安装四库
- shell编程
- leetcode 39 Combination Sum
- Mesos shuffle service unusable in Spark1.6