linux用shell奇数打印星号,shell 打印偶数行-奇数行 ,打印行号
打印行号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 打印偶数行-奇数行 ,打印行号相关推荐
- java输出1 100奇数和_输出1-100偶数和奇数
输出1-100之间的偶数 输出1-100之间的奇数 package test; public class demo { public static void main(String[] args) { ...
- java 打印星号_JAVA打印星号
闲来无事研究了下如何打印星树. 不知还有什么更好的方法 代码如下: public static void main(String[] args) { int spaceCount = 0; int s ...
- lua如何打印行号_双11购物清单,你打印了吗?9个打印技巧解密Excel打印问题,每一个难题都可以在这里找到答案...
关注精彩内容,要先点击这里哦~ 双十一要来了, 你的购物清单整理好了吗? 设置打印时有没有缺斤少两? 作为一个办公人员,经常需要打印很多数据表格,但是表格打印可是技术活儿,稍不留神儿,打印效果就会乱七 ...
- 按降序显示奇数python_程序在Python中分别以升序和降序对所有偶数和奇数进行排序...
假设我们有一个称为nums的数字列表,我们必须通过遵循以下条件对数组进行排序偶数按升序排列 奇数按降序排列 偶数和奇数的相对位置不应更改. 因此,如果输入类似于[9,14,12,91,-4,5],则输 ...
- linux获取偶数行内容,linux命令(39):shell 打印偶数行,奇数行 ,行号
awk 命令: 1. 打印行号和内容: awk '{print NR":"$0}' 2. 输出:偶数行和奇数行到文件 awk '{print $0.txt > NR%2.tx ...
- shell看java控制台_java - 为什么我的shell脚本的输出不能打印在控制台? - SO中文参考 - www.soinside.com...
我试图用java在控制台打印一个shell脚本的输出.当我手动运行该脚本时,我得到C:/Users/user1/Desktop/shell.sh: line 78: /usr/ucb/ps: No s ...
- gnu linux额外支持的运算符,《Shell编程从入门到精通》张昊-chap1-8
缘起 20190314开始复习及学习吧: 张昊编著: 内容 目录 i(9/314) 全书11章 chap1 第1个Shell程序 1(13/334) 1.1.第一道菜 [echo.sh] #!/bin ...
- Linux高级专题详解--shell编程大全(shell变量,if语句,case语句,for循环,while循环,函数调用,数组,正则表达式,shell脚本三剑客--grep,sed,awk家族)
shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...
- linux 终端 画圆,16个圆桌面Linux用户必须要知道的Shell命令
16个圆桌面Linux用户必须要知道的Shell命令 16个圆桌面Linux用户必须要知道的Shell命令 日期:2014-05-16 浏览次数:20305 次 16个桌面Linux用户必须要知道的S ...
最新文章
- 视图插入数据_带切片器的数据透视图
- 阿里云,我的一些看法
- Unity VR游戏开发干货教程:优化VR体验
- 关于以追加模式写入文件时,为什么第一行是空行?
- Net EF to MySQL生成edmx文件时报错:StrongTypingException:表“TableDetails中列“IsPrimaryKey的值为DBNull...
- java中byte装箱和装箱_Java包装类、拆箱和装箱详解
- 呆萌的图模型学习——图基本信息 Networkx基本操作(二)
- ISA Server 2004软件防火墙相关配置
- 2017.10.3 国庆清北 D3T2 公交车
- 4: Consolidating Datasets ( Challenge: Data Munging Using The Command Line)
- STM32官方固件库(标准固件库)下载及介绍
- web界面设计要素及基本设计规范
- 用Java 语言实现正整数的质因数分解
- amend用法 git 信息_Git commit --amend 修改提交信息操作
- 计算机考试成绩分析汇报,计算机考试成绩分析与总结.doc
- 正式赛1006 子序列计数
- java读取地址栏参数(id=123name=xiaoxiao)
- 弗洛伊德本我、自我、超我理论
- 【考试记录】阿里云大学Apsara Clouder云安全专项技能认证:云平台使用安全
- 信息文档管理与配置管理
热门文章
- 【课件制作软件】Focusky教程 | 设置文字阴影效果
- ps4实况2016服务器维护,实况足球2016 PS4联机延时的解决办法
- 路由器wan口ip地址_如何在没有浏览器的情况下查找外部或WAN IP地址?
- 用winrar压缩工具切分文件和合并文件
- 最近五年中秋节后第一天涨幅前十个股在此 沪深三七开 更多规律你来找
- turtle更多函数 难度0
- 【scala使用spark报错】illegal cyclic inheritance involving trait Iterable val df = Seq(
- 人工智能传奇—关于AI起源与发展的故事
- 裁员潮下的打工人,怎么把手里的饭碗端稳?
- 树莓派学习记录1-树莓派系统烧录与无屏幕网线连接开机