sed 删除最后几行 和删除指定行

 

sed 想删除文件中的指定行,是可以用行号指定也可以用RE来匹配的。

删除指定的行【可以指定行号删除、匹配字符串来删除】

[root@Jason64-17 ~]# cat -n seq.txt
1 ok i will help you
2 understand sed usage
3 how to use it
4 and we should use it in view
5 now let us
6 go
7 hello my name is
[root@Jason64-17 ~]# cat -n seq.txt | sed 3d
1 ok i will help you
2 understand sed usage
4 and we should use it in view
5 now let us
6 go
7 hello my name is
[root@Jason64-17 ~]# cat -n seq.txt | sed /should/d
1 ok i will help you
2 understand sed usage
3 how to use it
5 now let us
6 go
7 hello my name is
[root@Jason64-17 ~]# cat -n seq.txt | sed /ow/d
1 ok i will help you
2 understand sed usage
4 and we should use it in view
6 go
7 hello my name is
[root@Jason64-17 ~]# cat -n seq.txt | sed -r /how\|should/d
1 ok i will help you
2 understand sed usage
5 now let us
6 go
7 hello my name is

删除最后几行

[root@Jason64-17 ~]# seq 5 > seq01.txt
[root@Jason64-17 ~]# cat seq01.txt
1
2
3
4
5
[root@Jason64-17 ~]# for((i=1;i<4;i++)); do sed -i '$d' seq01.txt ; done
#C式for循环
[root@Jason64-17 ~]# cat seq01.txt
1
2
[root@Jason64-17 ~]# seq 5 > seq01.txt
[root@Jason64-17 ~]# cat seq01.txt
1
2
3
4
5
[root@Jason64-17 ~]# i=1; while [ $i -le 3 ]; do sed -i '$d' seq01.txt; ((i++)); done
#while循环
[root@Jason64-17 ~]# cat seq01.txt
1
2
[root@Jason64-17 ~]# seq 5 > seq01.txt
[root@Jason64-17 ~]# cat seq01.txt
1
2
3
4
5
[root@Jason64-17 ~]# for i in `seq 3`; do sed -i '$d' seq01.txt ; done
#bash for循环
[root@Jason64-17 ~]# cat seq01.txt
1
2
[root@Jason64-17 ~]# seq 5 > seq01.txt
[root@Jason64-17 ~]# cat seq01.txt
1
2
3
4
5
#until 循环
[root@Jason64-17 ~]# seq 5 > seq01.txt
[root@Jason64-17 ~]# cat seq01.txt
1
2
3
4
5
[root@Jason64-17 ~]# i=3; until [ $i -le 0 ]; do sed -i '$d' seq01.txt ; ((i--)); done
[root@Jason64-17 ~]# cat seq01.txt
1
2
[root@Jason64-17 ~]#
awk练习题
   wang     4
   cui      3
   zhao     4
   liu      3
   liu      3
   chang    5
   li       2
   1 通过第一个域找出字符长度为4的
   2 当第二列值大于3时,创建空白文件,文件名为当前行第一个域$1 (touch $1)
   3 将文档中 liu 字符串替换为 hong
   4 求第二列的和
   5 求第二列的平均值
   6 求第二列中的最大值
   7 将第一列过滤重复后,列出每一项,每一项的出现次数,每一项的大小总和
   1、字符串长度
    awk 'length($1)=="4"{print $1}'
   2、执行系统命令
    awk '{if($2>3){system ("touch "$1)}}'
   3、gsub(/r/,"s",域) 在指定域(默认$0)中用s替代r  (sed 's///g')
    awk '{gsub(/liu/,"hong",$1);print $0}' a.txt
   4、列求和
    df -h | awk '{a+=$2}END{print a}'
   5、列求平均值
    df -h | awk '{a+=$2}END{print a/NR}'
    df -h | awk '{a+=$2;b++}END{print a,a/b}' 
   6、列求最大值
    df -h | awk 'BEGIN{a=0}{if($2>a) a=$2 }END{print a}'
   7、将第一列过滤重复列出每一项,每一项的出现次数,每一项的大小总和
    awk '{a[$1]++;b[$1]+=$2}END{for(i in a){print i,a[i],b[i]}}'

sed 删除最后几行 和删除指定行 awk使用的更多相关文章

  1. mysql 行号 获取指定行数据

    mysql 行号的实现 Select id,(@rowNum:=@rowNum+1) as rowNo From first,(Select (@rowNum :=0) ) bOrder by fir ...

  2. python实现Excel删除特定行、拷贝指定行操作

    工作中遇到的,本来用VBA写的,操作很慢,尝试用Python实现, 任务需求: 从原始的两张表中拷贝行到五张表中,如下表所示: source1和source2是一样的格式:         one t ...

  3. iOS UITableView 解决估算行高和指定行高的矛盾

    喜欢交朋友的加:微信号 dwjluck2013 1.一般来说 在iOS 中若UITableViewCell 固定行高, 会通过 - (CGFloat)tableView:(UITableView *) ...

  4. C++操作文件行(读取,删除,修改指定行)

    /******************************************************** Copyright (C), 2016-2018, FileName: main A ...

  5. python3读取文件指定行的三种方案

    技术背景 考虑到深度学习领域中的数据规模一般都比较大,尤其是训练集,这个限制条件对应到实际编程中就意味着,我们很有可能无法将整个数据文件的内容全部都加载到内存中.那么就需要一些特殊的处理方式,比如:创 ...

  6. [Linux] sed命令使用之在文件中快速删除/增加指定行

    1.删除文档的第一行 sed -i '1d' <file> 2.删除文档的最后一行sed -i '$d' <file> 3.在文档指定行中增加一行例如文档如下:echo &qu ...

  7. 【Sed】使用sed删除文件指定行的内容

    sed多看帮助文档,受益良多 sed -i '$d' filename 例如删除 /etc/profile的最后一行 cat -n /etc/profile ...    101  export PA ...

  8. sed插入,替换指定行的特定字符串,删除指定行首的#

    sed -i '$a service snmpd start' /etc/rc.local sed -i "41s:public:mykey:g" /etc/snmp/snmpd. ...

  9. IOS学习之路六(UITableView滑动删除指定行)

    滑动删除指定行代码如下: Controller.h文件 #import <UIKit/UIKit.h> @interface TableViewController : UIViewCon ...

随机推荐

  1. Hyperledger Fabric(3)通道与组织

    1,通道的结构 通道是Fabric中非常重要的概念(类似微信群?),它实质是由排序节点划分和管理的私有原子广播通道,目的是对通道的信息进行隔离,使得通道外的实体无法访问通道内的信息,从而实现交易的隐私 ...

  2. 从Spring看Web项目开发

    之前简单介绍过Spring框架,本文换个角度重新诠释Spring.使用Java语言开发的项目,几乎都绕不过Spring,那么Spring到底是啥,为何被如此广泛的应用,下面从以下两个问题出发来剖析Sp ...

  3. Tomcat各版本及源码包下载

    Tomcat各版本及源码包下载 1.百度 Tomcat 进入官网2.Tomcat 官网地址:http://tomcat.apache.org/3.所有 Tomcat 版本及源码包下载地址:https: ...

  4. python-迭代器与生成器1

    python-迭代器与生成器1 迭代器与生成器列表的定义列表生成式:作用使代码更加简洁通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元 ...

  5. RE 逆向工程初学者指南:方法和工具

    简评: RE 两种分析,静态.动态.好好分析静态因为能够解决 70 % 的问题.介绍了一些工具和方法.Enjoy yourself. 最近几天,我决定试水逆向工程,即使在计算机和编程相关领域有一定的基 ...

  6. (转)linux特殊文件名字删除不了怎么办

    1. 文件名含有特殊字符,直接使用 rm 可能删除不了,可以使用如下方法: 1) 使用 ls -i 查处该文件的 inode 号,假设为654321 2) 使用find命令删除 find ./ -in ...

  7. ESXi与物理交换机静态链路聚合配置过程中的小陷阱

    作者:陆斌文章来自微信公众号:平台人生 内容简介:ESXi与物理交换机之间配置静态链路聚合时,因为静态链路聚合的特点,在进行down网卡和从虚拟交换机移除网卡的操作时,可能会无法完成故障流量切换,影响 ...

  8. Mac的MySQL无法启动的原因

    一.由于Mac OS X的升级或其他原因可能会导致一个错误: Warning:The /usr/local/mysql/data directory is not owned by the 'mysq ...

  9. 深浅拷贝(copy)

    目录 copy 模块 1.拷贝(赋值) 1). x为不可变数据类型 2). x为可变数据类型 3). 可变数据类型(比如列表)内,既有不可变元素,又有容器类型可变元素(比如列表) 2.浅拷贝 3.深拷 ...

  10. 字符串类QString

    采用Unicode编码,所以一个QChar占用两个字节使用隐式共享技术来节省内存和减少不必要的数据拷贝跨平台使用,不用考虑字符串的平台兼容性QString直接支持字符串和数字之间的相互转换QStrin ...