- 删除第九行和其后的所有行(第九行会被删除):
sed '9,$d' 5618_all
- 显示行号且只显示前9行:
nl 5618_all|head -9
- 删除指定模式第一次出现的行和其后所有行:
sed '/wuyang/,$d' 5618_all
删除含有指定模式的行:
sed '/wuyang/d' 5618_all删除文件指定部分并更新文件(-i表示保存到当前文件):
sed -i '9,$d' 5618_all
- 根据行号删除:
sed '5d' 5618_all
- 删除倒数第三行:
tac 5618_all | sed '3d'|tac
- 删除倒数第三行,bash shell版本
linenum=cat file | wc -l
linenum_last3=expr $linenum - 3
sed -n ''"$linenum_last3"'d' file
注释:sed使用变量
是通过单引号双引号。其实还有很多其它方法。
'"$variable '"
随语:
shell grep sed awk perl
- Q:学了perl,还有必要学grep sed awk吗?有人说学这么多,不统一,浪费时间学太多工具。
- 个人理解:
perl语言的实现,本来就很杂。各个工具有自己擅长的地方,而且有很强的共性,学起来不费事,一通百通,多学一门语言对熟悉的语言也有好处。总之,利远远大于弊。 - 总结各个工具特点(仅适合自己):
grep查找关键词;
awk用做列模式整理文本;
sed 替换修改文本;
perl是shell/grep/sed/awk的粘合剂。perl语言强大。一些小操作,还是用grep/sed/awk处理,简单。
参考文献:
- 在sed中使用变量 - wendell的日志 - 网易博客
http://520hanchan.blog.163.com/blog/static/1569280420113284104669/ - sed, a stream editor
https://www.gnu.org/software/sed/manual/sed.html#Introduction - sed中文手册_百度文库
http://wenku.baidu.com/view/b6b49702de80d4d8d15a4fe1.html - SED的暂存空间和模式空间 - 乐在其中/Leo在其中 - ITeye技术网站
http://leowzy.iteye.com/blog/1453421