shell中对文件指定行的操作
1、awk1
awk 可以设置条件来输出文件中m行到n行中每行的指定的k字段,使用格式如下
awk 'NR==m,NR==n {print $k}' path/filename
m,n,k表示实在的数值,其中k为0-9。如果要用变量来表示m,n的值,则变量需要用单引号将其引起来。
NR,{print }是awk命令在此用法下的规定字段;path/filename表示读取文件的路径及文件名。
当要读取某一行的内容的k字段时,使用格式如下
awk 'NR==m {print $k}' path/filename
m,k与以上的含义一致,分别表示要读取的行数和当前行的第k字段。
2、sed2
显示某行
[root@localhost] # sed -n '1p' #显示第一行
[root@localhost] # sed -n '$p' #显示最后一行
[root@localhost] # sed -n '1,2p' #显示第一行到第二行
[root@localhost] # sed -n '2,$p' #显示第二行到最后一行
使用模式进行查询
[root@localhost] # sed -n '/ruby/p' #查询包括关键字ruby所在所有行
[root@localhost] # sed -n '/\$/p' #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义
删除指定行
[root@localhost] # sed '1d' #删除第一行
[root@localhost] # sed '$d' #删除最后一行
[root@localhost] # sed '1,2d' #删除第一行到第二行
[root@localhost] # sed '2,$d' #删除第二行到最后一行
awk详细命令见:http://man.linuxde.net/awk ↩︎
sed详细命令见:http://man.linuxde.net/sed ↩︎