打印行号awk '{print NR":"$0}'

打印偶数行、奇数行

(1)  awk '{print $0 > NR%2}'  file

(2)sed -n '1~2p'  file

sed -n '2~2p' file

(3)  sed -n 'p;n'  file

sed -n 'n;p'  file

(4)1,awk 'NR%2==1' file

2,awk 'NR%2==0' file

(5) 1.awk 'NR%2' file2.awk '!(NR%2)' file

(6)1.awk 'i=!i' file

2.awk '!(i=!i)' file

解释:

awk 'var=xx'应该说等价于awk 'xx{print}{var=xx}'

awk 'i=!i'  == >  awk '!i{print}{i=!i}

line 1: !0{print}{i=!0}==> {print;i=1}

line 2: !1{print}{i=!1}==> {i=0}

line 3: !0{print}{i=!0}==> {print;i=1}

1.awk 'NR%2==1' file  / /显示奇数行

2.sed -n '1,$n;p' file   / /显示偶数行

3.sed -n '1,$p;n' file / /显示奇数行

4.奇数行:sed '2~2d' file / /显示奇数行

5.偶数行:sed '1~2d' file/ /显示偶数行

sed '1d;n;d'  status.txtsed -n 'n;p'status.txtsed -n '0~2p'status.txtawk '!(NR%2)'status.txtawk 'i++%2'status.txtawk '!(i=i?0:1)'status.txtawk '!(i=!i)'status.txt

[root@sgzhang /]# cat -n tt1  aaa2  bbb3  ccc4  ddd5  eee6  fff[root@sgzhang /]# cat -n  tt |awk NR%2==02  bbb4  ddd6  fff[root@sgzhang /]# cat -n  tt |awk NR%2==11  aaa3  ccc5  eee[root@sgzhang /]# cat -n tt |sed -n 'p;n'1  aaa3  ccc5  eee[root@sgzhang /]# cat -n tt |sed -n 'n;p'2  bbb4  ddd6  fff

$ seq 6 | awk 'NR%2'

1

3

5

$ seq 6 | awk '!(NR%2)'

2

4

6

$ seq 6 | awk '++i%2'

1

3

5

$ seq 6 | awk 'i++%2'

2

4

6

$ seq 6 | awk 'i=!i'

1

3

5

$ seq 6 | awk -vi=1 'i=!i'

2

4

6

$ seq 6 | sed -n 'N;P'

1

3

5

$ seq 6 | sed -n 'n;p'

2

4

6

一. 行距:

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("] : %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对比

linux用shell奇数打印星号,shell 打印偶数行-奇数行 ,打印行号相关推荐

  1. java输出1 100奇数和_输出1-100偶数和奇数

    输出1-100之间的偶数 输出1-100之间的奇数 package test; public class demo { public static void main(String[] args) { ...

  2. java 打印星号_JAVA打印星号

    闲来无事研究了下如何打印星树. 不知还有什么更好的方法 代码如下: public static void main(String[] args) { int spaceCount = 0; int s ...

  3. lua如何打印行号_双11购物清单,你打印了吗?9个打印技巧解密Excel打印问题,每一个难题都可以在这里找到答案...

    关注精彩内容,要先点击这里哦~ 双十一要来了, 你的购物清单整理好了吗? 设置打印时有没有缺斤少两? 作为一个办公人员,经常需要打印很多数据表格,但是表格打印可是技术活儿,稍不留神儿,打印效果就会乱七 ...

  4. 按降序显示奇数python_程序在Python中分别以升序和降序对所有偶数和奇数进行排序...

    假设我们有一个称为nums的数字列表,我们必须通过遵循以下条件对数组进行排序偶数按升序排列 奇数按降序排列 偶数和奇数的相对位置不应更改. 因此,如果输入类似于[9,14,12,91,-4,5],则输 ...

  5. linux获取偶数行内容,linux命令(39):shell 打印偶数行,奇数行 ,行号

    awk 命令: 1. 打印行号和内容: awk '{print NR":"$0}' 2. 输出:偶数行和奇数行到文件 awk '{print $0.txt > NR%2.tx ...

  6. shell看java控制台_java - 为什么我的shell脚本的输出不能打印在控制台? - SO中文参考 - www.soinside.com...

    我试图用java在控制台打印一个shell脚本的输出.当我手动运行该脚本时,我得到C:/Users/user1/Desktop/shell.sh: line 78: /usr/ucb/ps: No s ...

  7. gnu linux额外支持的运算符,《Shell编程从入门到精通》张昊-chap1-8

    缘起 20190314开始复习及学习吧: 张昊编著: 内容 目录 i(9/314) 全书11章 chap1 第1个Shell程序 1(13/334) 1.1.第一道菜 [echo.sh] #!/bin ...

  8. Linux高级专题详解--shell编程大全(shell变量,if语句,case语句,for循环,while循环,函数调用,数组,正则表达式,shell脚本三剑客--grep,sed,awk家族)

    shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...

  9. linux 终端 画圆,16个圆桌面Linux用户必须要知道的Shell命令

    16个圆桌面Linux用户必须要知道的Shell命令 16个圆桌面Linux用户必须要知道的Shell命令 日期:2014-05-16 浏览次数:20305 次 16个桌面Linux用户必须要知道的S ...

最新文章

  1. 视图插入数据_带切片器的数据透视图
  2. 阿里云,我的一些看法
  3. Unity VR游戏开发干货教程:优化VR体验
  4. 关于以追加模式写入文件时,为什么第一行是空行?
  5. Net EF to MySQL生成edmx文件时报错:StrongTypingException:表“TableDetails中列“IsPrimaryKey的值为DBNull...
  6. java中byte装箱和装箱_Java包装类、拆箱和装箱详解
  7. 呆萌的图模型学习——图基本信息 Networkx基本操作(二)
  8. ISA Server 2004软件防火墙相关配置
  9. 2017.10.3 国庆清北 D3T2 公交车
  10. 4: Consolidating Datasets ( Challenge: Data Munging Using The Command Line)
  11. STM32官方固件库(标准固件库)下载及介绍
  12. web界面设计要素及基本设计规范
  13. 用Java 语言实现正整数的质因数分解
  14. amend用法 git 信息_Git commit --amend 修改提交信息操作
  15. 计算机考试成绩分析汇报,计算机考试成绩分析与总结.doc
  16. 正式赛1006 子序列计数
  17. java读取地址栏参数(id=123name=xiaoxiao)
  18. 弗洛伊德本我、自我、超我理论
  19. 【考试记录】阿里云大学Apsara Clouder云安全专项技能认证:云平台使用安全
  20. 信息文档管理与配置管理

热门文章

  1. 【课件制作软件】Focusky教程 | 设置文字阴影效果
  2. ps4实况2016服务器维护,实况足球2016 PS4联机延时的解决办法
  3. 路由器wan口ip地址_如何在没有浏览器的情况下查找外部或WAN IP地址?
  4. 用winrar压缩工具切分文件和合并文件
  5. 最近五年中秋节后第一天涨幅前十个股在此 沪深三七开 更多规律你来找
  6. turtle更多函数 难度0
  7. 【scala使用spark报错】illegal cyclic inheritance involving trait Iterable val df = Seq(
  8. 人工智能传奇—关于AI起源与发展的故事
  9. 裁员潮下的打工人,怎么把手里的饭碗端稳?
  10. 树莓派学习记录1-树莓派系统烧录与无屏幕网线连接开机