测试常用linux命令之sed篇
一、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篇的更多相关文章
- 测试常用Linux命令
大家应该经常在网络上看到下图吧,虽然我们不会去执行下面图片中的命令,但是linux常用的命令对于测试人员来说,还是必须掌握的,不管是做功能测试还是性能测试,最常用的就是看日志了. sudo是linux ...
- 测试常用Linux命令总结
1.显示目录和文件的命令 Ls:用于查看所有文件夹的命令. Dir:用于显示指定文件夹和目录的命令 Tree: 以树状图列出目录内容 Du:显示目录或文件大小 2.修改目录,文件权限和属主及数组命 ...
- 测试常用linux命令1
进程相关: 1,查看所有进程(包含历史进程): ps -ef 各个参数的含义依次是uid,pid,ppid,c(cpu利用率),stime(进程启动时间),tty,time,cmd 2,动态查看进程t ...
- 测试常用linux命令之系统监测
top命令: cpu使用情况,内存等 du -hs: 查看目录大小 df -h :查看磁盘使用情况 free: 查看电脑整体内存使用情况 uptime:系统时间,用户数目等 vmstat:内存使用,进 ...
- 77个常用Linux命令和工具
77个常用Linux命令和工具 Linux管理员不能单靠GUI图形界面吃饭.这就是我们编辑这篇最实用Linux命令手册的原因.这个指南是特别为Linux管理员和系统管理员 设计的,汇集了最有用的一些工 ...
- 常用Linux命令小结
常用Linux命令小结 Linux下有很多常用的很有用的命令,这种命令用的多了就熟了,对于我来说,如果长时间没有用的话,就容易忘记.当然,可以到时候用man命令查看帮助,但是,到时候查找的话未免有些临 ...
- 十五个最常用Linux命令行 - imsoft.cnblogs
众多Linux管理员在使用Linux的时候会经常使用到很多Linux命令行,其中有绝大部分不是经常使用到的.在本文中主要为大家总结了经常使用的十五个最常用Linux命令行,希望对刚刚接触Linux命令 ...
- 常用Linux命令笔记
任何脱离业务的架构都是耍流氓 只记录实际常用的Linux命令 常用Linux命令 查找安装路径: whereis nginx 查询nginx进程: ps aux|grep nginx 查看 CentO ...
- 常用 Linux 命令的基本使用
常用 Linux 命令的基本使用 操作系统 作用:管理好硬件设备,让软件可以和硬件发生交互类型 桌面操作系统 Windows macos linux 服务器操作系统 linux Windows ser ...
随机推荐
- [ZJOI2008]骑士 题解
题面 这道题稍微想一想就会联想到树形DP的入门题:没有上司的舞会: 但是再想一想会发现这根本就不是一颗树,因为它比树多了一条边: 这时候我们引入一个新的概念:基环树: 顾名思义(??),基环树就是在一 ...
- C++中的类型识别
1,为什么会提出类型识别概念呢? 1,为什么在 C 语言中没有提出这个概念呢,就是因为在 C++ 中引入了面向对象的特性,面向对象里面有一个非常重要的原则就是赋值兼容性原则: 2,在面向对象中可能出现 ...
- python-day25(正式学习)
目录 组合 多态 多态性 好处 封装 两个层面 property 组合 组合就是一个类的对象具备某一个属性,该属性的值是指向另外外一个类的对象 组合是用来解决类与类之间代码冗余的问题 首先我们先写一个 ...
- 使用二阶微分锐化图像(拉普拉斯算子)基本原理及Python实现
1. 拉普拉斯算子 1.1 简介 一种典型的各向同性的微分算子,可用于检测图像中灰度图片的区域 $$ \nabla^{2} f=\frac{\partial^{2} f}{\partial x^{2} ...
- Balloon Robot ZOJ - 3981
大意: n个参赛队, m个座位, 一共交了p次题, 一个机器人每秒钟会从位置$i$走到$i+1$, 若在$m$直接走到$1$, 当走到一个队伍就给该队应得的气球. 对于每道题, 假设交题时间$t_a$ ...
- Longest Subsequence CodeForces - 632D (lcm)
大意: 给定序列$a$, 求选出最长的一个子序列, 使得lcm不超过m. 刚开始想复杂了, 想着枚举gcd然后背包, 这样复杂度就是$O(\sum\limits_{i=1}^m \frac{m\sig ...
- ElasticSearch实战系列四: ElasticSearch理论知识介绍
前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...
- type=file 上传图片限制 类型和尺寸 方法
<form> <input type="file" name="pic" id="pic" accept="im ...
- Delphi 语句
- SpringBoot封装自己的Starter
https://juejin.im/post/5cb880c2f265da03981fc031 一.说明 我们在使用SpringBoot的时候常常要引入一些Starter,例如spring-boot- ...