- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章轻松学会文本处理工具之二 linux sed命令由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果.
sed命令的语法格式:
sed的命令格式: sed [option] 'sed command'filename 。
sed的脚本格式:sed [option] -f 'sed script'filename 。
sed命令的选项(option):
-n :只打印模式匹配的行 -e :直接在命令行模式上进行sed动作编辑,此为默认选项 -f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作 -r :支持扩展表达式 -i :直接修改文件内容 。
sed在文件中查询文本的方式:
1)使用行号,可以是一个简单数字,或是一个行号范围 。
x 。 |
x为行号 。 |
x,y 。 |
表示行号从x到y 。 |
/pattern 。 |
查询包含模式的行 。 |
/pattern /pattern 。 |
查询包含两个模式的行 。 |
pattern/,x 。 |
在给定行号上查询包含模式的行 。 |
x,/pattern/ 。 |
通过行号和模式查询匹配的行 。 |
x,y! 。 |
查询不包含指定行号x和y的行 。 |
。
2)使用正则表达式、扩展正则表达式(必须结合-r选项) 。
。
^ 。 |
锚点行首的符合条件的内容,用法格式"^pattern" 。 |
$ 。 |
锚点行首的符合条件的内容,用法格式"pattern$" 。 |
^$ 。 |
空白行 。 |
. 。 |
匹配任意单个字符 。 |
* 。 |
匹配紧挨在前面的字符任意次(0,1,多次) 。 |
.* 。 |
匹配任意长度的任意字符 。 |
\? |
匹配紧挨在前面的字符0次或1次 。 |
\{m,n\} 。 |
匹配其前面的字符至少m次,至多n次 。 |
\{m,\} 。 |
匹配其前面的字符至少m次 。 |
\{m\} 。 |
精确匹配前面的m次\{0,n\}:0到n次 。 |
\< 。 |
锚点词首----相当于 \b,用法格式:\<pattern 。 |
\> 。 |
锚点词尾,用法格式:\>pattern 。 |
\<pattern\> 。 |
单词锚点 。 |
\(\) 。 |
分组,用法格式:\(pattern\),引用\1,\2 。 |
[] 。 |
匹配指定范围内的任意单个字符 。 |
[^] 。 |
匹配指定范围外的任意单个字符 。 |
[:digit:] 。 |
所有数字, 相当于0-9, [0-9]---> [[:digit:]] 。 |
[:lower:] 。 |
所有的小写字母 。 |
[:upper:] 。 |
所有的大写字母 。 |
[:alpha:] 。 |
所有的字母 。 |
[:alnum:] 。 |
相当于0-9a-zA-Z 。 |
[:space:] 。 |
空白字符 。 |
[:punct:] 。 |
所有标点符号 。 |
。
。
sed的编辑命令(sed command):
。
。
p 。 |
打印匹配行(和-n选项一起合用) 。 |
= 。 |
显示文件行号 。 |
a\ 。 |
在定位行号后附加新文本信息 。 |
i\ 。 |
在定位行号后插入新文本信息 。 |
d 。 |
删除定位行 。 |
c\ 。 |
用新文本替换定位文本 。 |
w filename 。 |
写文本到一个文件,类似输出重定向 > 。 |
r filename 。 |
从另一个文件中读文本,类似输入重定向 < 。 |
s 。 |
使用替换模式替换相应模式 。 |
q 。 |
第一个模式匹配完成后退出或立即退出 。 |
l 。 |
显示与八进制ACSII代码等价的控制符 。 |
{} 。 |
在定位行执行的命令组,用分号隔开 。 |
n 。 |
从另一个文件中读文本下一行,并从下一条命令而不是第一条命令开始对其的处理 。 |
N 。 |
在数据流中添加下一行以创建用于处理的多行组 。 |
g 。 |
将模式2粘贴到/pattern n/ 。 |
y 。 |
传送字符,替换单个字符 。 |
。
对文件的操作无非就是”增删改查“,怎样用sed命令实现对文件的”增删改查“,玩转sed是写自动化脚本必须的基础之一。 sed命令打印文件信息(查询):
。
。
。
sed命令实现对文件内容的添加:(对源文件添加的话就用-i参数): 。
。
。
。
。
sed命令实现对文件内容的删除:(对源文件直接删除用-i参数)
sed的删除操作是针对文件的行,如果想删除行中的某个字符,那就用替换(别急,替换稍后就讲,而且替换是sed最常用的) 。
重点:sed命令实现对文件内容的替换(替换是在shell自动化脚本中用到最多的操作) 。
sed引用变量:(在自动化shell脚本 中也经常会使用到变量) 。
。
第一种当sed命令里面没有默认的变量时可以把单引号改成双引号; 第二种当sed命令里面有默认的变量时,那自己定义的变量需要加单引号,且sed里面的语句必须用单引 。
。
。
sed的其它高级使用:
1)把正在用sed操作的文件的内容写到例外一个文件中 。
。
。
2)读取一个文件到正在用sed操作的文件中 。
。
。
sed的经典例子:
。
。
学会sed的使用是写自动化shell脚本的基础,sed也是一个非常有用且重要的命令,是文本处理工具之一,以上是我自己学习总结的sed命令简单的用法,sed还有更高级的用法,也还在学习中.
最后此篇关于轻松学会文本处理工具之二 linux sed命令的文章就讲到这里了,如果你想了解更多关于轻松学会文本处理工具之二 linux sed命令的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我尝试将resteasy与自定义对象一起使用,当我创建jar文件时,它与intellij IDE一起工作正常,但失败并出现以下异常 org.jboss.resteasy.core.NoMessageB
我正在寻找一种在easy-close选项为TRUE时基于Shiny模态关闭触发事件的方法(因此,在模态外部单击将其关闭)。由于没有链接到模式的ID,因此我似乎无法捕获此事件。我尝试在“观察”事件中包装
假设我有一些定义如下的类: class Security { Boolean AuthenticateUser(String username, String password); B
正如标题所说,Coq 可以用作模型检查器吗?我可以将模型检查与 Coq 证明混合使用吗?这是常态吗?谷歌谈论“微积分”,有没有人有这方面的经验或类似的经验?是否建议以这种方式使用 Coq,或者我应该寻
是否有一种方法(设置或快捷方式)可以显示输出超过 500 行的查询的总行数 - 即,无需修改首选项中的“结果集页面大小”值?我本质上是在寻找 select count(*) from () t 的输出
我想这样做: System.out.println("안녕하세요!"); 但是当我尝试在 Eclipse 中进行编译时,出现“某些字符无法使用 MacRoman 字符编码进行编码”弹出式错误消息。我正
如果我有一个用这样的字符串初始化的框架 setter CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(at
所以这里没有什么新内容,我只是想得到一些澄清,但似乎在其他帖子中找不到任何澄清。 我正在安静地创建一个新资源,例如: /books (POST) 有一个 body : { title: 'The
我有很多预处理器宏定义,如下所示: #define FOO 1 #define BAR 2 #define BAZ 3 在实际应用中,每个定义对应一个解释器虚拟机中的一条指令。宏的编号也不是连续的,以
使用 SpriteKit 开发 iOS 游戏。我的背景由 map block 组成(本质上是无限 map ,程序生成)。 我们的系统旨在管理 map 的“ block ”,我们只加载玩家附近的 blo
我需要在 Ruby 中拆分一个具有以下格式的字符串: [{a:1,b:2,c:3,d:4},{a:5,b:6,c:7,d:8},{a:9,b:10,c:11,d:12},{a:13,b:14,c:1
Linq 有一个名为 Take() 的便捷运算符方法,可以返回任何实现 IEnumerable 的元素中给定数量的元素。 jQuery 中是否有类似的东西可以处理数组? 或者,换个方式问:如何在 Ja
每当我使用以下代码在文档中插入图像时, var cursor = DocumentApp.getActiveDocument().getCursor(); var image = cursor
今天看到这样一段代码: if ( not defined($reply_address) or not defined($from_name) or not defined(
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
刚刚了解 mercurial 的 --style和 --template可用于 hg log 的选项和 hg tip我发现它们非常有帮助,但我不知道把我的“样式文件”放在哪里 我有一个“样式文件”,它
是否有一些应用程序可以自动 bundle (并缩小)包含 require('file.js') 调用的 JS 项目?这样它们就会合并并生成一个文件。 具体来说,我正在谈论when.js ,一个带有大量
如何(轻松)获取 Sublime Text 3 中的当前文件路径 我不经常使用 ST 控制台(我只使用它一次来安装包管理器),但我认为这可能是一个好方法: 像某种pwd命令一样获取当前文件路径。 但这
嗨,我正在使用resteasy api,我需要使用Map作为QueryParam。我可以使用列表作为 QueryParam,但是当我尝试传递 Map 时,我收到下面提到的错误。 这是我的服务代码 @G
假设我有一个 C++ 代码(请参阅下面的简单示例)。我想让期刊审稿人轻松安装/运行 所以我认为最简单的方法是将其变形为简化的类 R 包的 tar.gz 文件,以便裁判可以安装它通过简单地调用 inst
我是一名优秀的程序员,十分优秀!