`
MyEyeOfJava
  • 浏览: 1163685 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:71615
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

一分钟sed入门(一分钟系列)

sed 
阅读更多

1.简介

sed是一种行编辑器,它一次处理一行内容。

 

2.sed调用方式

sed [options] 'command' file(s)

sed [options] -f scriptfile file(s)

第一种直接在命令行中执行,第二种把命令写到了脚本中,二者无本质区别。

示例(1):打印hello.txt的内容

sed -n p hello.txt

说明:

-n:sed会在处理一行文本前,将待处理的文本打印出来,-n参数关闭了这个功能

p:命令表示打印当前行

hello.txt:待处理的文件

这个指令相当于cat

 

3.定址

告诉sed你期望处理的行,由逗号分隔的两个数字表示,$符号表示最后一行;

当然也可以使用正则来定位期望处理的行。

示例(2):打印hello.txt的第二行到最后一行

sed -n '2,$'p hello.txt

示例(3):打印hello.txt中正则匹配"100"的行

sed -n '/100/'p hello.txt 

 

4.基本命令

hello.txt的内容为

1 2 3
10 20 30
100 200 300

命令:a\

在匹配行的后面加入一行文本

示例(4)匹配100的行,后面加入一行"new line"

sed '/100/'a\ "new line" hello.txt

输出内容为:

1 2 3
10 20 30
100 200 300
new line

命令:i\

在匹配行的前面加入一行文本

示例(5)匹配100的行,前面加入一行"new line"

sed '/100/'i\ "new line" hello.txt

输出内容为:

1 2 3
10 20 30
new line
100 200 300

命令:c\

将匹配行替换为目的行

示例(5)匹配100的行,替换为"new line"

sed '/100/'c\ "new line" hello.txt

输出内容为:

1 2 3
10 20 30
new line

命令:d

将匹配行删除

示例(5)删除匹配100的行

sed '/100/'d hello.txt

输出内容为:

1 2 3
10 20 30

命令:s

将匹配行替换

详细命令为:s/pattern-to-find/replacement-pattern/g

pattern-to-find:被替换的串

replacement-pattern:替换成这个串

g:全部替换,默认只替换匹配到的第一个

示例(5)讲100替换为hello

sed 's/100/hello/g' hello.txt 

输出内容为:

1 2 3
10 20 30
hello 200 300

5.元字符集

^:匹配一行的开始

$:匹配一行的结束

.:匹配某个字符

[abc]:匹配指定范围字符

 

6.实用命令

匹配以10开头的行,并替换为yes,并输出

sed -n 's/^10/yes/p' hello.txt

输出内容为:

yes 20 30
yes0 200 300

取出文件中行手的行号与冒号

设hello.txt的内容为

1:#!/bin/sh

2:cat hello.txt

3:exit

 

sed -n -e 's/^[0-9]\{1,\}://g'p hello.txt

输出结果为:

#!/bin/sh
cat hello.txt

exit

 

分享到:
评论

相关推荐

    正则表达式30分钟入门教程

    ### 正则表达式30分钟入门教程 #### 快速入门正则表达式的教程 本文档旨在提供一份关于正则表达式的快速入门教程。正则表达式是一种强大的文本处理工具,广泛应用于搜索、替换以及提取特定格式或模式的数据。通过...

    正则表达式30分钟入门教程.rar

    正则表达式,又称规则表达式。(英语:Regular ...正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成"regex",单数有regexp、regex,复数有regexps、regexes、regexen。

    正则表达式30分钟入门教程-附常用表达式.zip

    计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 许多程序设计语言都支持利用正则表达式进行字符串...正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

    shell编程-正则表达式/awk/sed

    "正则表达式30分钟入门教程.pdf"可能包含了从基础概念如字符类、量词、锚点到高级特性的全面介绍,如分组、后向引用和正向预查。 sed是一个流编辑器,它可以逐行读取输入,对文本进行操作,然后将结果发送到标准...

    正则表达式快速入门30分钟搞定

    你可以通过《正则表达式30分钟入门教程》.doc深入了解这些概念和实例。这份文档将引导你快速掌握正则表达式的基本用法,包括各种元字符、量词、分组以及它们在实际场景中的应用。 总之,正则表达式是一门强大的技术...

    正则表达式30分钟入门教程 v2.1版

    30分钟入门教程v2.1版旨在快速引导初学者理解正则表达式的基本概念和常用语法,使您能在短时间内掌握其核心功能。 1. **基础概念** - **模式匹配**:正则表达式是描述特定模式的字符串,可以用来查找、替换或提取...

    30分钟搞定BASH脚本编程

    例如,`ls -l | sed -e "s/[aeio]/u/g"`命令会将`ls -l`列出的文件信息通过管道传递给`sed`,`sed`再替换掉所有包含"aeiou"的字母为"u"。另一个例子是`ls -l | grep ".txt"`,它过滤出所有`.txt`文件。 在BASH脚本...

    30分钟部署一个Kubernetes集群.md

    ### 30分钟部署一个Kubernetes集群 #### 一、概述 Kubernetes(简称K8s)是一个开源的容器编排平台,它可以帮助用户管理容器化的应用,包括部署、维护和扩展等。为了简化Kubernetes集群的搭建过程,社区推出了`...

Global site tag (gtag.js) - Google Analytics