sed和shell:删除文件的第n行和倒数第n行

来源:互联网 发布:万网网络空间购买 编辑:程序博客网 时间:2024/06/04 23:45

删除第三行,并把结果送至文件newfile

sed '3d' file>newfile 

删除倒数第三行,把结果送至文件newfile

tac file|sed '3d'|tac >newfile

删除倒数第三行,bash shell版本

linenum=`cat file | wc -l`linenum_last3=`expr $linenum - 3`sed -n ''"$linenum_last3"'d' file

注释:sed使用变量
是通过单引号双引号。其实还有很多其它方法。

'"$variable '"

参考文献:
- 在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

随语:
shell grep sed awk perl
- Q:学了perl,还有必要学grep sed awk吗?有人说学这么多,不统一,浪费时间学太多工具。
- 个人理解:
perl语言的实现,本来就很杂。各个工具有自己擅长的地方,而且有很强的共性,学起来不费事,一通百通,多学一门语言对熟悉的语言也有好处。总之,利远远大于弊。
- 总结各个工具特点(仅适合自己):
grep查找关键词;
awk用做列模式整理文本;
sed 替换修改文本;
perl是shell/grep/sed/awk的粘合剂。perl语言强大。一些小操作,还是用grep/sed/awk处理,简单。

1 0