Error[8]: Undefined offset: 11, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="[+++]}{a=[+++]}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,[+++]表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" [+++] }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" [+++] }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,[+++]) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { [+++]=++a " :" [+++] }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,[+++]表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline=[+++] }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 12, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=[+++]}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,[+++]表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" [+++] }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" [+++] }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,[+++]) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { [+++]=++a " :" [+++] }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,[+++]表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline=[+++] }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 13, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,[+++]表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" [+++] }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" [+++] }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,[+++]) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { [+++]=++a " :" [+++] }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,[+++]表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline=[+++] }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 14, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" [+++] }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" [+++] }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,[+++]) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { [+++]=++a " :" [+++] }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,[+++]表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline=[+++] }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 15, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" [+++] }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,[+++]) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { [+++]=++a " :" [+++] }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,[+++]表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline=[+++] }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 16, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,[+++]) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { [+++]=++a " :" [+++] }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,[+++]表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline=[+++] }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 17, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { [+++]=++a " :" [+++] }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,[+++]表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline=[+++] }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 18, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { =++a " :" [+++] }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,[+++]表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline=[+++] }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 19, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { =++a " :" }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,[+++]表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline=[+++] }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 20, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { =++a " :" }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline=[+++] }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 21, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { =++a " :" }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline= }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" [+++] } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 22, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { =++a " :" }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline= }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                            [+++]                                                   

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 23, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { =++a " :" }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline= }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                                                                              

[+++] 总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
使用awk和sed获取文件奇偶数行的方法总结_系统运维_内存溢出

使用awk和sed获取文件奇偶数行的方法总结

使用awk和sed获取文件奇偶数行的方法总结,第1张

概述  测试文件test.file [[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999

 

测试文件test.file

[[email protected] ~]# cat test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010

1) 打印奇数行的方法

[[email protected] ~]# sed -n ‘1~2p‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# sed -n ‘p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed -n ‘1,$p;n‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# sed ‘2~2d‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999[[email protected] ~]# awk ‘NR%2==1‘ test.file 111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘NR%2‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999 [[email protected] ~]# awk ‘i=!i‘ test.file111111111111111333333333333333555555555555555777777777777777999999999999999

2) 打印偶数行的方法

[[email protected] ~]# sed -n ‘2~2p‘ test.file       2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# sed -n ‘n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed -n ‘1,$n;p‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# sed ‘1~2d‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010[[email protected] ~]# awk ‘NR%2==0‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(NR%2)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010 [[email protected] ~]# awk ‘!(i=!i)‘ test.file2222222222222224444444444444446666666666666668888888888888881010101010101010

打印奇偶行的方法总结

sed -n ‘1~2p‘ test.file   打印奇数行sed -n ‘2~2p‘ test.file   打印偶数行sed -n ‘p;n‘ test.file    打印奇数行sed -n ‘n;p‘ test.file    打印偶数行sed -n ‘1,$p;n‘ test.file 打印奇数行sed -n ‘1,$n;p‘ test.file 打印偶数行sed ‘2~2d‘ test.file      打印奇数行sed ‘1~2d‘ test.file      打印偶数行awk ‘NR%2==1‘ test.file   打印奇数行awk ‘NR%2==0‘ test.file   打印偶数行awk ‘NR%2‘ test.file      打印奇数行awk ‘!(NR%2)‘ test.file   打印偶数行awk ‘i=!i‘ test.file      打印奇数行awk ‘!(i=!i)‘ test.file   打印偶数行

                                                            其他相关正则取值说明                                                       

1) 打印行号和内容[[email protected] ~]# awk ‘{print NR":"shell脚本,实现奇数行等于偶数行 }‘ test.file 1:1111111111111112:2222222222222223:3333333333333334:4444444444444445:5555555555555556:6666666666666667:7777777777777778:8888888888888889:99999999999999910:10101010101010102) 每行间加一个空行[[email protected] ~]# awk ‘1; { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘1 { print } { print "" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print } { print "" }‘ test.file1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘BEGIN { ORS="\n\n" }; 1‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010103) 仅输出非空行,并每行间在加一个空行# awk ‘NF { print 
[[email protected] ~]# cat kevin.fileaa11bb22cc33dd44使用awk命令可以这样实现:[[email protected] ~]# awk ‘NR%2==0{print a"="}{a=}‘ kevin.fileaa=11bb=22cc=33dd=44使用shell脚本可以这样实现:[[email protected] ~]# cat kevin.sh #!/bin/bashn=0for i in $(cat /root/kevin.file)do  n=$(($n+1))    [ $((n%2)) -eq 1 ] && echo -n $i=    [ $((n%2)) -eq 0 ] && echo $idone[[email protected] ~]# sh kevin.shaa=11bb=22cc=33dd=44
"\n" }‘ test.fileNF表示当前行的字段数,表示当前行,最后再加一个换行4) 双倍行距;没行间两个空行默认输出后会换行的,输出\n,则会输出两个空白行[[email protected] ~]# awk ‘1; { print "\n" }‘ test.file 1111111111111112222222222222223333333333333334444444444444445555555555555556666666666666667777777777777778888888888888889999999999999991010101010101010[[email protected] ~]# awk ‘{ print; print "\n" }‘ test.file11111111111111122222222222222233333333333333344444444444444455555555555555566666666666666677777777777777788888888888888899999999999999910101010101010105) 显示当前行在所在文件中的行号FNR,表示当前行在文件中的行号[[email protected] ~]# awk ‘{ print FNR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 10101010101010106) 显示当前行在本次处理过程中的行号NR,表示当前行在本次处理过程中的行号[[email protected] ~]# awk ‘{ print NR "\t" }‘ test.file1 1111111111111112 2222222222222223 3333333333333334 4444444444444445 5555555555555556 6666666666666667 7777777777777778 8888888888888889 99999999999999910 1010101010101010为啥有FNR和NR的差别呢?效果不都是一样么? 如果使用两个文件filname1.ext filname2.ext,则就会看到差别了。原来:FNR,是每个文件中的,换了一个文件,会归零;而NR则每个文件会累加起来的7) 使用简单样式来输出下面表示"行号占用5位,不足补空格"[[email protected] ~]# awk ‘{ printf("] : %s\n",NR,) }‘ test.file ] : 1] : 2] : 3] : 4] : 5] : 6] : 7] : 8] : 9] : 108) 显示非空行# awk ‘NF { =++a " :" }; { print }‘ test.fileNF前面说了,表示当前行的行号,此处用他作为条件,如果是空行,则NF为0,跳过;否则,用动态变量a存储非空行的数目9) 计算行数:效果类似wc -lEND表示每行都处理完了后,在执行,此时NR就是最后一行的行号,也就是总的行数了。#awk ‘END { print NR }‘ test.file 10) 计算每一行的和s用作每行和的累加,从1到NF(每行总的字段数),依次累加# awk ‘{ s = 0; for (i = 1; i <= NF; i++) s = s+$i; print s }‘ test.file11) 计算文件中所有字段的和s用作总和的累加,每行都处理完成了,再输出s;注意和10对比,此处没有每行清零,所以累加了。没有设置的变量,默认为空,但是会根据上下文数值计算情况自动变为0# awk ‘{ for (i = 1; i <= NF; i++) s = s+$i }; END { print s }‘ test.file12) 将每个字段用其绝对值代替$i表示当前行中的字段,表示当前行,可以改变$i的值# awk ‘{ for (i = 1; i <= NF; i++) if ($i < 0) $i = -$i; print }‘ test.file13) 计算文件中总的字段和(例如计算单词数)# awk ‘{ total = total + NF }; END { print total }‘ test.file14) 计算匹配指定信息的总行数# awk ‘/linux/ { n++ }; END { print n+0 }‘ test.file15) 找到文件中每行第一个字段中,最大的数,以及其所在的行用max存储最大的数,maxline存储最大数所在的行,并在最后输出# awk ‘ > max { max=; maxline= }; END { print max,maxline }‘ test.file16) 显示当前行的字段数,并输出当前行# awk ‘{ print NF ":" } ‘ test.file17) 显示每行最后一个字段的内容# awk ‘{ print $NF }‘ test.file #NF表示当前行的字段数,例如为3,则$NF,就是,也就是第三个字段了18) 显示最后一行的最后一个字段每行处理没有输出,尽在最后输出,fIEld作为每行的最后一行的暂存变量# awk ‘{ fIEld = $NF }; END { print fIEld }‘ test.file19) 显示字段数小于4的行# awk ‘NF < 4‘ test.file 20) 显示每行的最后一个字段小于4的行# awk ‘$NF < 4‘ test.file

                                                                                                              

总结

以上是内存溢出为你收集整理的使用awk和sed获取文件奇偶数行的方法总结全部内容,希望文章能够帮你解决使用awk和sed获取文件奇偶数行的方法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1031359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)