一、sed命令

可以放在单独的脚本文件中执行:sed -f script1 data1

多条命令也可以用{}括起来

sed可以进行文本的替换,删除,行添加,打印等。采用

sed [address]{command1

command2} 文件名的形式

其中adress可以有两种形式:1)行的数字范围。2)用文本模式来过滤出某行。

文本替换:sed '2,$s/dog/cat/g' a.txt    通过模式查找: sed '/hello/s/dog/cat'

行删除: sed '3d' a.txt    sed '/number/d' a.txt

插入和附件文本:sed '5i\new line' a.txt    sed '3o\new line' a.txt

注意这些修改都是基于流的,如果想要在源文件上修改,需要加上-i选项。

打印: sed -n '3,5p'    基于文本匹配的 sed -n '/pattern/p'

sed的一些高级知识

n;提取文本的下一行,代表从文件流的下一个文本行进行处理

N;代表将下一行加到已经在模式空间的文本上

自己使用的一直是sed命令的模式空间,其实它还有一个保持空间

h:将模式空间复制到保持空间

H:将模式空间附加到保持空间

g:将保持空间复制到模式空间

G:将保持空间附件到模式空间

x:交换模式空间和保持空间的内容

相当于将一部分后面需要的内容先保存,最后再用g,G命令将数据从保持空间复原到模式空间。

其他:!代表符合特定模式的不怎么怎么着。。。

三、具体案例

#!/bin/sh
#该脚本用来实现统计一个目录下所有的文件个数 all_count=
for filePath in `echo $PATH | sed 's/:/ /g'`
do
count=`ls $filePath | wc -l`
echo "$filePath":"$count"
all_count=$[$all_count+$count]
done
echo "all_count:"$all_count

统计路径下的文件个数

sed -i '/^$/d' a.txt

利用sed去除空行

cat a.txt | sed 'N;s/\n/ /g'

利用sed实现多行合并

 cat a.txt | sed '/line2/{N;s/\n/ /g}'

利用sed实现特定行的合并

之前自己一直采用的cat -n的方式,这种方法自然可以,只不过行号的格式往往不是想要的
sed '=' a.txt | sed 'N;s/\n/\t/g'

利用sed为行添加行号

sed -i 's/^ //g' a.txt

利用sed去除段前的空格

cat a.txt | sed '/./,/^$/!d'

利用sed将多个空白行合并为一个

 cat a.txt | sed '/./,/$/!d'
(从有文字的行到最后一行,都不删除)

利用sed删除开头的空白行

cat a.txt | sed 's/<[^>]*>//g'
需要忽略任何嵌入原始标签的大于号

利用sed去除html标签

测试常用linux命令之sed篇的更多相关文章

  1. 测试常用Linux命令

    大家应该经常在网络上看到下图吧,虽然我们不会去执行下面图片中的命令,但是linux常用的命令对于测试人员来说,还是必须掌握的,不管是做功能测试还是性能测试,最常用的就是看日志了. sudo是linux ...

  2. 测试常用Linux命令总结

    1.显示目录和文件的命令 Ls:用于查看所有文件夹的命令. Dir:用于显示指定文件夹和目录的命令   Tree: 以树状图列出目录内容 Du:显示目录或文件大小 2.修改目录,文件权限和属主及数组命 ...

  3. 测试常用linux命令1

    进程相关: 1,查看所有进程(包含历史进程): ps -ef 各个参数的含义依次是uid,pid,ppid,c(cpu利用率),stime(进程启动时间),tty,time,cmd 2,动态查看进程t ...

  4. 测试常用linux命令之系统监测

    top命令: cpu使用情况,内存等 du -hs: 查看目录大小 df -h :查看磁盘使用情况 free: 查看电脑整体内存使用情况 uptime:系统时间,用户数目等 vmstat:内存使用,进 ...

  5. 77个常用Linux命令和工具

    77个常用Linux命令和工具 Linux管理员不能单靠GUI图形界面吃饭.这就是我们编辑这篇最实用Linux命令手册的原因.这个指南是特别为Linux管理员和系统管理员 设计的,汇集了最有用的一些工 ...

  6. 常用Linux命令小结

    常用Linux命令小结 Linux下有很多常用的很有用的命令,这种命令用的多了就熟了,对于我来说,如果长时间没有用的话,就容易忘记.当然,可以到时候用man命令查看帮助,但是,到时候查找的话未免有些临 ...

  7. 十五个最常用Linux命令行 - imsoft.cnblogs

    众多Linux管理员在使用Linux的时候会经常使用到很多Linux命令行,其中有绝大部分不是经常使用到的.在本文中主要为大家总结了经常使用的十五个最常用Linux命令行,希望对刚刚接触Linux命令 ...

  8. 常用Linux命令笔记

    任何脱离业务的架构都是耍流氓 只记录实际常用的Linux命令 常用Linux命令 查找安装路径: whereis nginx 查询nginx进程: ps aux|grep nginx 查看 CentO ...

  9. 常用 Linux 命令的基本使用

    常用 Linux 命令的基本使用 操作系统 作用:管理好硬件设备,让软件可以和硬件发生交互类型 桌面操作系统 Windows macos linux 服务器操作系统 linux Windows ser ...

随机推荐

  1. T2 AC自动机

    T2:AC自动机 (ac.cpp) 题目背景 YZD在每天学习20小时的勤奋研究下,终于开发出了AC自动机!但是,这台AC自动机有一些bug,比如两个部件之间经常会出一些莫名其妙的问题,所以他想要随时 ...

  2. $APIO~2019$ 游记

    我是鸽子. Upd:我全国倒数第一稳了. Uupd:时间过去好久了,这段时间发生很多事,比如NOIP没了... APIO时候的事也记得不是很清楚了,随便写点颓废资料吧: 如果想吃离酒店最近的一家火锅店 ...

  3. 一道并发和锁的golang面试题

    今天面试golang碰到了一道考并发和锁的题目,没有完成,所以把它记录下来,仅为以后复习. 场景:在一个高并发的web服务器中,要限制IP的频繁访问.现模拟100个IP同时并发访问服务器,每个IP要重 ...

  4. java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter的解决方案

    白天在实验室的电脑上的项目搭起来,晚上回到宿舍发现跑不起来了,网上查到的大多不是想要的答案. 最终的解决方案是maven clean一下再重新package.

  5. luoguP4578_ [FJOI2018]所罗门王的宝藏

    题意 一个n*m的矩阵,初始值全为0,每一行每一列操作一次可以加1或者减1,问能否操作得到给定矩阵. 分析 行和列的分别的加减是可以相互抵消的,因此我们只需要考虑行的加和列的减. 对于给定矩阵每一个数 ...

  6. IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(Application.StartupPath + "\\temp", 0); 报:异常来自 HRESULT:0x80040228

    原因:未添加License. 解决办法:在窗体中添加LicenseControl即可.如下图,License图标运行时不会显示.

  7. 19.AutoMapper 之开放式泛型(Open Generics)

    https://www.jianshu.com/p/ce4c7e291408 开放式泛型(Open Generics) AutoMapper可以支持开放式泛型的映射.为开放式泛型创建映射: publi ...

  8. 页面中获取 iframe 中的值

    3.页面中获取 iframe 中的值 var obj=document.getElementsByClassName(".ke-edit-iframe").contentWindo ...

  9. 生成树计数及应用 Matrix-Tree

    例:给定一个图,图上每条边是红色或蓝色 求恰好有K条红边的生成树的个数,N<=50. Matrix-Tree定理 对于限制条件可以利用多项式,把红边边权设为X,蓝边边权设为1. 最后求行列式得到 ...

  10. Java JDK下载方法

    https://jingyan.baidu.com/album/574c5219fb033c2c8d9dc194.html?picindex=5  也可以参考这个 ‘’‘’ 大家下载的时候一定要按照步 ...