转:linux命令: tail ,head 显示文件某行内容 与sed在线编辑器

linux 如何显示一个文件的某几行(中间几行)

转:http://www.cnblogs.com/xianghang123/archive/2011/08/03/2125977.html

http://www.chinabin.cn/language/shell/2150.html

【一】从第3000行开始,显示1000行。即显示3000~3999行

cat filename | tail -n +3000 | head -n 1000

【二】显示1000行到3000行

cat filename| head -n 3000 | tail -n +1000

*注意两种方法的顺序

分解:

tail -n 1000:显示最后1000行

tail -n +1000:从1000行开始显示,显示1000行以后的

head -n 1000:显示前面1000行

tail和 head 用法比较简单;

tail   -n  行数值  文件名;

【三】用sed命令

sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。 这里的sed表示string edit流编辑器,p表示print打印。

sed是一种在线编辑器,它一次处理一行内容。sed全称是stream edit,流处理器。这个概念是相对于vi等交互式文本处理器而言的。基本上使用它进行每一行的处理。在使用sed的过程中,我们使用最多的,或者说sed提供最多的是三个功能。字符串匹配替换、删除行、打印命令和插入文本等命令的组合。下面是总结的比较常用、简单的用法。

删除d:

地址是逗号分隔的,那么需要处理的地址是这两行之间的范围(包括这两行在内)。范围可以用数字、正则表达式、或二者的组合表示。例如:

 

sed '2,5d' datafile
#删除第二到第五行
sed '/My/,/You/d' datafile
#删除包含"My"的行到包含"You"的行之间的行
sed '/My/,10d' datafile
#删除包含"My"的行到第十行的内容

 

替换每一行的第一个出现的abc为def

 
1
sed-e's/abc/def/'file.name

替换所有的abc为def

 
1
sed-e's/abc/def/g'file.name

shell脚本中的用法,注意是双引号而不是单引号

 
1
sed-e"s/$old_pattern/$new_pattern/g"file.name

删除当前目录中文件名中包含特殊字符的文件,如 +,{,;,\等

 
1
2
3
4
forfilename in*
do
    badname=!echo"$filename"|sed-n/[\+\{\;\"\\\=\?\~\(\)\<\>\&\*\|\$\]/p!
done

当然,也可以使用find语句,如下:

 
1
find.-name'*[+{;"\\=?~()<>&*|$ ]*'-exec rm-f'{}'\;

文件改名

 
 
 
 
 
 
 
 
 
 
上一篇:linux命令截取文件最后n行(所有命令)


下一篇:TCP,IP,HTTP,SOCKET区别和联系