目录
问题背景:
解决方法:
提取指定的某一行数据,例如第一行、第N行、最后一行
提取指定若干行区间内的数据,例如第1-10行
提取特定的某几行数据,例如提取第1行、第3行、第6行
提取以某些关键字开头或结尾的特定数据行
提取某一对标签之间包夹的数据
提取奇数行和偶数行的数据
输出文本文件的总行数
打印倒数第二行数据
问题背景:
sed简介:(system editor,流文本编辑器)
sed是非交互式编辑器,默认不会修改文件,会输出打印到屏幕或文件逐行处理;
所以主要用sed指令来处理行数据,列数据可以使用awk。
解决方法:
#输出所有行,等于cat file
sed -n 'p' file
选项说明:
-n:安静模式,只输出被sed处理过的那一行或几行
提取指定的某一行数据,例如第一行、第N行、最后一行
#输出第一行
sed -n '1p' file
#输出第N行
sed -n 'Np' file
#输出最后一行
sed -n '$p' file
提取指定若干行区间内的数据,例如第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
提取特定的某几行数据,例如提取第1行、第3行、第6行
注意这里用分号隔开
#输出第1,3,6行,注意用分号隔开
sed -n '1p;3p;6p' file
提取以某些关键字开头或结尾的特定数据行
注意这里的斜杠以及通配符的使用
#列出以name开头的行
sed -n '/^name/p' file
#列出以id结尾的行
sed -n '/id$/p' file
提取某一对标签之间包夹的数据
#输出A:和A:之间的数据123
file:
A:
123
A:
sed -n '/A:/,/A:/p' file
提取奇数行和偶数行的数据
注意分号分隔和n,p的顺序
#输出奇数行
sed -n 'p;n' file
#输出偶数行
sed -n 'n;p' file
输出文本文件的总行数
#输出文件的行数
sed -n '$=' file
打印倒数第二行数据
#输出倒数第二行
sed -n 'x;$p' file