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

原创 2016年08月28日 18:50:09

删除第三行,并把结果送至文件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处理,简单。

版权声明:iamqilei@qq.com

linux sed删除d命令使用举例

sed删除,并不会修改原文件中的内容,除非重定向新文件 sed ‘2d’ example.txt表示删除example.txt中第二行的文本内容 sed ‘2,$d’ example.txt表示删除e...

用sed -i修改文件,去掉 “行首” 带“@”的首字母@

用sed -i修改文件,去掉 “行首” 带“@”的首字母@ ---------------- 你的意思是去掉行首的@ sed -i 's/^@//' filename 还是去掉行首的@...
  • sidely
  • sidely
  • 2014年09月25日 20:20
  • 3106

Shell行操作:逐行读取,指定行输出,指定行删除等

1、逐行输出所有行,#!/bin/sh #一次读文件一行,可以根据需要编辑改行的内容 num=0 while read line do echo $line...

head和tail命令-----得到头尾N行或者这去掉尾头N/N-1行

[algo@localhost tmp]$ cat test  1 2 3 4 5 head得到头部2行,删掉尾部2行 [algo@localhost tmp]$ head -n...

sed命令:删除匹配行和替换

sed

sed系列:行或者模式匹配删除特定行

“p” command prints the buffer (remember to use -n option with “p”)  “d” command is just opposite, i...

sed删除匹配行到最后的行。

xxxxx bbbbb 44444 abc66 88888 yyyyyy 我要删除匹配包含abc行和后面所有行,得到结果 xxxxx bbbbb 44444 如何搞??谢谢! 解决方法: sed...
  • gzhouc
  • gzhouc
  • 2016年03月01日 00:35
  • 2745

unix: 从文本中截取指定匹配行(sed的用法)

首先准备一段文本:test01.txt begin how are you? fine thank you,and you? i am fine too. end ^Bbegin ple...

sed在指定行上删除和添加字符

使用sed完成在指定行上删除和添加字符。
  • nfer_cn
  • nfer_cn
  • 2015年03月03日 09:36
  • 10114

sed删除匹配行到最后一行

[root@dltasoam001jeguan ~]# vi /etc/resolv.conf nameserver 135.111.105.157 nameserver 135.111.105.1...
  • gzhouc
  • gzhouc
  • 2016年03月01日 01:02
  • 2098
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sed和shell:删除文件的第n行和倒数第n行
举报原因:
原因补充:

(最多只允许输入30个字)