shell中对文件指定行的操作

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'             #删除第二行到最后一行

  1. awk详细命令见:http://man.linuxde.net/awk ↩︎

  2. sed详细命令见:http://man.linuxde.net/sed ↩︎

猜你喜欢

转载自blog.csdn.net/weixin_42558057/article/details/82757029