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

守听  金牌会员 | 2024-8-28 13:42:51 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 757|帖子 757|积分 2271

目录
问题背景:
解决方法:
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
解决方法:

  1. #输出所有行,等于cat file
  2. sed -n 'p' file
复制代码
选项分析:
        -n:安静模式,只输出被sed处置处罚过的那一行或几行
1.sed提取指定的某一行数据,比方第一行、第N行、末了一行

  1. #输出第一行
  2. sed -n '1p' file
  3. #输出第N行
  4. sed -n 'Np' file
  5. #输出最后一行
  6. sed -n '$p' file
复制代码
2.sed提取指定若干行区间内的数据,比方第1-10行

  1. #输出第1-10行
  2. sed -n '1,10p' file
  3. #输出第5-10行
  4. sed -n '5,10p' file
  5. #输出第10-最后一行
  6. sed -n '10,$p' file
  7. #输出从第5行开始及其后面10行(也就是5-15行)
  8. sed -n '5,+10p' file
复制代码
3.sed提取特定的某几行数据,比方提取第1行、第3行、第6行

注意这里用分号隔开
  1. #输出第1,3,6行,注意用分号隔开
  2. sed -n '1p;3p;6p' file
复制代码
4.sed提取以某些关键字开头或结尾的特定命据行

注意这里的斜杠以及通配符的使用
  1. #列出以name开头的行
  2. sed -n '/^name/p' file
  3. #列出以id结尾的行
  4. sed -n '/id$/p' file
复制代码
5.sed提取某一对标签之间包夹的数据

  1. #输出A:和A:之间的数据123
  2. file:   
  3.          A:
  4.             123
  5.          A:
  6. sed -n '/A:/,/A:/p' file
复制代码
6.sed提取奇数行和偶数行的数据

注意分号分隔和n,p的序次
  1. #输出奇数行
  2. sed -n 'p;n' file
  3. #输出偶数行
  4. sed -n 'n;p' file
复制代码
7.sed输出文本文件的总行数

  1. #输出文件的行数
  2. sed -n '$=' file
复制代码
8.sed打印倒数第二行数据

  1. #输出倒数第二行
  2. sed -n 'x;$p' file
复制代码
 
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表