【linux/shell实战案例】使用sed提取文件中某一行或几行数据的方法

程序员赵大宝 2024-10-16 12:07:01 阅读 85

目录

问题背景:

解决方法:

1.sed提取指定的某一行数据,例如第一行、第N行、最后一行

2.sed提取指定若干行区间内的数据,例如第1-10行

3.sed提取特定的某几行数据,例如提取第1行、第3行、第6行

4.sed提取以某些关键字开头或结尾的特定数据行

5.sed提取某一对标签之间包夹的数据

6.sed提取奇数行和偶数行的数据

7.sed输出文本文件的总行数

8.sed打印倒数第二行数据


问题背景:

sed简介:(system editor,流文本编辑器)

sed是非交互式编辑器,默认不会修改文件,会输出打印到屏幕或文件逐行处理;

所以主要用sed指令来处理行数据,列数据可以使用awk

解决方法:

<code>#输出所有行,等于cat file

sed -n 'p' file

选项说明:

        -n:安静模式,只输出被sed处理过的那一行或几行

1.sed提取指定的某一行数据,例如第一行、第N行、最后一行

#输出第一行

sed -n '1p' file

#输出第N行

sed -n 'Np' file

#输出最后一行

sed -n '$p' file

2.sed提取指定若干行区间内的数据,例如第1-10行

#输出第1-10行

sed -n '1,10p' file

#输出第5-10行

sed -n '5,10p' file

#输出第10-最后一行

sed -n '10,$p' file

#输出从第5行开始及其后面10行(也就是5-15行)

sed -n '5,+10p' file

3.sed提取特定的某几行数据,例如提取第1行、第3行、第6行

注意这里用分号隔开

#输出第1,3,6行,注意用分号隔开

sed -n '1p;3p;6p' file

4.sed提取以某些关键字开头或结尾的特定数据行

注意这里的斜杠以及通配符的使用

#列出以name开头的行

sed -n '/^name/p' file

#列出以id结尾的行

sed -n '/id$/p' file

5.sed提取某一对标签之间包夹的数据

#输出A:和A:之间的数据123

file:

A:

123

A:

sed -n '/A:/,/A:/p' file

6.sed提取奇数行和偶数行的数据

注意分号分隔和n,p的顺序

#输出奇数行

sed -n 'p;n' file

#输出偶数行

sed -n 'n;p' file

7.sed输出文本文件的总行数

#输出文件的行数

sed -n '$=' file

8.sed打印倒数第二行数据

#输出倒数第二行

sed -n 'x;$p' file

 

 



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。