用awk、sed打印奇数行或偶数行

简介:

这里只介绍最简单的方法

sed实现
一:
奇数行 sed -n 'p;n' file
偶数行 sed -n 'n;p' file

 

这个可能比较难理解,举个网上的例子:

例,从aaa文件中取出偶数行
cat aaa 
This is 1    
This is 2    
This is 3    
This is 4    
This is 5    

sed -n 'n;p' aaa         //-n表示取消默认输出 
This is 2    
This is 4

注 释:sed读取This is 1,执行n命令,此时模式空间为This is 2,执行p,打印模式空间内容This is 2,之后读取 This is 3,执行n命令,此时模式空间为This is 4,执行p,打印模式空间内容This is 4,之后读取This is 5,执行n 命令,因为没有了,所以退出,并放弃p命令。

因此,最终打印出来的就是偶数行。


二:

奇数行 sed -n '1~2p' file
偶数行 sed -n '2~2p' file

 

awk实现
一:
奇数行 awk 'NR%2==1' file
偶数行 awk 'NR%2==0' file
二:
奇数行 awk 'NR%2' file
偶数行 awk '!(NR%2)' file



本文转自 kuSorZ 51CTO博客,原文链接:http://blog.51cto.com/kusorz/1829449

相关文章
|
7月前
|
Perl
在 `awk` 中,for 循环
在 `awk` 中,for 循环
616 5
|
7月前
|
Perl
awk循环处理
awk循环处理
187 8
|
7月前
|
Perl
sed打印特定行
sed打印特定行
284 4
|
7月前
|
C语言 索引 Perl
在awk中遍历数组
在awk中遍历数组
179 8
|
7月前
|
Perl
awk打印表头
awk打印表头
94 2
|
7月前
杨辉三角问题(打印空格版)
特点:1、每个数字等于上一行的左右两个数字之和。2、第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,即 C(n+1,i)=C(n,i)+C(n,i-1)。下面我们通过两种不同的办法实现杨辉三角
awk 常用的命令样例
以下是一些常用的 awk 命令样例: 1. 打印文件的某列: ``` awk '{print $1}' filename.txt ``` 这个命令会打印文件 `filename.txt` 的第一列。 2. 根据条件筛选行并打印: ``` awk '$3 > 10 {print $1, $2}' filename.txt ``` 这个命令会打印文件 `filename.txt` 中第三列大于 10 的行的第一列和第二列。 3. 计算并打印某列的总和: ``` awk '{sum += $1} END {print sum}' filename.txt ``` 这个命令会计算文件 `file
132 0
编程从键盘输入一个正整数n,判断该数的奇偶性,若为奇数输出“odd”,若为偶数输出“even”
编程从键盘输入一个正整数n,判断该数的奇偶性,若为奇数输出“odd”,若为偶数输出“even”
|
Unix Linux Shell
字符操作命令:cut、printf、awk、sed、sort、wc
cut 命令 cut命令用来显示行中的指定部分
|
Perl
awk合并相加输出
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396487 ...
1074 0